字符串转 OffSetDateTime 你真的会用吗?
作者:互联网
要创建OffsetDateTime ,需要日期 (日,月和年), 时间 (小时,分钟,秒和纳秒)和偏移量 (与UTC的差异)。
如果输入只有日期,将会报错.
如果只有 日期 小时,分钟和秒,也会报错.
因此必须构建其余的,或者假设它们的默认值。
下面是我写好的工具类,拿去用吧:
public class OffSetDateTimeConverter {
private static DateTimeFormatter DATE_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd")
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
.parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
.toFormatter();
private static DateTimeFormatter DATE_TIME_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd HH:mm:ss")
.parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
.parseDefaulting(ChronoField.OFFSET_SECONDS, 0)
.toFormatter();
public static OffsetDateTime convertDate(String date) {
if (StringUtils.isBlank(date)) {
return null;
}
return OffsetDateTime.parse(date, DATE_FORMAT);
}
public static OffsetDateTime convertDateTime(String dateTime) {
if (StringUtils.isBlank(dateTime)) {
return null;
}
return OffsetDateTime.parse(dateTime, DATE_TIME_FORMAT);
}
}
标签:会用,FORMAT,OffsetDateTime,parseDefaulting,DATE,ChronoField,字符串,return,OffSetDateT 来源: https://blog.csdn.net/itguangit/article/details/110200395