2.LocalDateTime、LocalDate

前言

博主github

博主个人博客http://blog.healerjean.com

1、LocalTime

//LocalTime包含毫秒
LocalTime now = LocalTime.now(); // 11:09:09.240

//清除毫秒数
LocalTime now = LocalTime.now().withNano(0)); // 11:09:09

//构造时间
LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00

2、LocalDate

2.1、取当前日期:

LocalDate today = LocalDate.now(); 

2.2、根据年月日取日期,5月就是05:>2014-12-25

LocalDate date= LocalDate.of(2017, 05, 25); 

2.3、 根据字符串取: 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式

LocalDate date= LocalDate.parse("2014-02-28"); //正确

LocalDate.parse("2014-02-29"); // 无效日期无法通过:

3、LocalDateTime

3.1、2013-12-31 23:59

LocalDateTime d1 = LocalDateTime.of(2013, 12, 31, 23, 59);  

3.2、年月日 时分秒 纳秒

LocalDateTime d2 = LocalDateTime.of(2013, 12, 31, 23, 59,59, 11);  

3.3、解析String—>LocalDateTime

3.3.1、2013-12-31T23:59
LocalDateTime d4 = LocalDateTime.parse("2013-12-31T23:59");  
3.3.2、2013-12-31T23:59:59.999
LocalDateTime d5 = LocalDateTime.parse("2013-12-31T23:59:59.999");
3.3.3、标准String日期 转化为LocalDateTime
  
    private LocalDateTime getLocalDateTime(String strDate) {
        try {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = formatter.parse(strDate);
            Instant instant = Instant.ofEpochMilli(date.getTime());
            LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
            return localDateTime;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return  null;
    }

4、Contorller中使用

4.1、Local类型的日期

@InitBinder
protected void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(LocalDate.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        }
    });
    binder.registerCustomEditor(LocalDateTime.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(LocalDateTime.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        }
    });
    binder.registerCustomEditor(LocalTime.class, new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) throws IllegalArgumentException {
            setValue(LocalTime.parse(text, DateTimeFormatter.ofPattern("HH:mm:ss")));
        }
    });
}

4.2、普通date


    @InitBinder
    public void dateBinder(WebDataBinder binder){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        binder.registerCustomEditor(Date.class,new CustomDateEditor(dateFormat,true));
    }



感兴趣的,欢迎添加博主微信

哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。

请下方留言吧。可与博主自由讨论哦

微信 微信公众号 支付宝
微信 微信公众号 支付宝
posted @ 2017-05-25 14:49  HealerJean  阅读(99)  评论(0编辑  收藏  举报