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));
}
感兴趣的,欢迎添加博主微信
哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。
请下方留言吧。可与博主自由讨论哦
微信 | 微信公众号 | 支付宝 |
---|---|---|