在用新的
Date API
的時候大家有木有遇到很多坑蚤氏,這里就告訴大家如何解決字符串轉(zhuǎn)換LocalDateTime
中的方法
使用方法
常規(guī)
String valueIn = "2018-01-24 10:13:52";
DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse(valueIn, DATETIME);
System.out.println(ldt);
輸出結(jié)果
2018-01-24T10:13:52
夢想
但是我想要的結(jié)果是這樣子才對
2018-01-24T10:13:52
轉(zhuǎn)日期
那么我們可以這么寫
DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
如果后面帶毫秒數(shù)呢萍鲸?我們可以這么寫
DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
SpringBoot 統(tǒng)一處理
以下配置處于SpringBoot上下文掃描范圍中
@ControllerAdvice
public class VControllerAdvice extends ValidateControllerAdvice{
private static final DateTimeFormatter LOCAL_DATE_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter LOCAL_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(LocalDate.class, new PropertyEditorSupport() {
@Override
public void setAsText(String text) throws IllegalArgumentException {
this.setValue(LocalDate.parse(text, LOCAL_DATE));
}
});
binder.registerCustomEditor(LocalDateTime.class, new PropertyEditorSupport() {
@Override
public void setAsText(String text) throws IllegalArgumentException {
this.setValue(LocalDateTime.parse(text, LOCAL_DATE_TIME));
}
});
}
}
PS:完美