我有一个以下格式的日期,我需要解析它并将其转换为一个纪元时间。
2018-11-08 08:17:18.696124
我有以下代码。
String dateString = "2018-11-08 08:17:18.696124";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
ZonedDateTime dateTime = ZonedDateTime.parse(dateString, fmt);
我跑步时遇到以下错误。
无法解析文本'2018-11-08 08:17:18.696124':无法 从TemporalAccessor:{}获得ZonedDateTime,ISO解析为 类型为java.time.format.Parsed的2018-11-08T08:17:18.696124
对我在这里做错的任何帮助吗?
答案 0 :(得分:2)
一个已分区日期时间需要一个区域。您的时间戳格式不包含一种,因此解析失败。
您应该解析为LocalDateTime
,然后应用正确的区域。例如:
String dateString = "2018-11-08 08:17:18.696124";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
LocalDateTime dateTime = LocalDateTime.parse(dateString, fmt);
ZonedDateTime london = dateTime.atZone(ZoneId.of("Europe/London"));