Java 8 DateTimeFormatter 忽略毫秒和时区
Java 8 DateTimeFormatter to ignore millisecond and zone
我正在努力 Java 8 DateTimeFormatter
。
我想将给定的 String
转换为 dateFormat 并解析为 LocalDateTime
这是我的代码
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")
String text = "2020-01-01T01:01:11.123Z"
LocalDateTime date = LocalDateTime.parse(text, f)
但是 Java 抛出
Text could not be parsed, unparsed text found at index 19
如果我将 ofPattern
更改为 yyyy-MM-dd'T'HH:mm:ss.SSSX
,我的代码将毫无错误地执行。
但是我不想用毫秒和时区。
改为这样做:
String text = "2020-01-01T01:01:11.123Z";
LocalDateTime date = ZonedDateTime.parse(text)
.toLocalDateTime();
要删除毫秒信息,请执行以下操作:
LocalDateTime date = ZonedDateTime.parse(text)
.truncatedTo(ChronoUnit.SECONDS)
.toLocalDateTime();
您也可以使用 OffsetDateTime
代替 ZonedDateTime
。
我正在努力 Java 8 DateTimeFormatter
。
我想将给定的 String
转换为 dateFormat 并解析为 LocalDateTime
这是我的代码
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")
String text = "2020-01-01T01:01:11.123Z"
LocalDateTime date = LocalDateTime.parse(text, f)
但是 Java 抛出
Text could not be parsed, unparsed text found at index 19
如果我将 ofPattern
更改为 yyyy-MM-dd'T'HH:mm:ss.SSSX
,我的代码将毫无错误地执行。
但是我不想用毫秒和时区。
改为这样做:
String text = "2020-01-01T01:01:11.123Z";
LocalDateTime date = ZonedDateTime.parse(text)
.toLocalDateTime();
要删除毫秒信息,请执行以下操作:
LocalDateTime date = ZonedDateTime.parse(text)
.truncatedTo(ChronoUnit.SECONDS)
.toLocalDateTime();
您也可以使用 OffsetDateTime
代替 ZonedDateTime
。