java - Java 24 小时字符串到 ZonedDateTime
问题描述
我想将 24 小时字符串 ex:13:05 2017-03-19
转换为 ZonedDateTime。目前我正在尝试这样做:
DateTimeFormatter zoneParser = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
this.startZoneTime = LocalDateTime.parse(date + " " +start, zoneParser).atZone(ZoneId.systemDefault());
this.endZoneTime = LocalDateTime.parse(date + " " + end, zoneParser).atZone(ZoneId.systemDefault());
但是得到一个解析异常。
解决方案
13:05 2017-03-19
有一个模式HH:mm yyyy-MM-dd
,而不是yyyy-MM-dd HH:mm:ss
你使用的模式 - 所以如果你尝试将它与上面的代码一起使用,这将引发异常。该模式必须与您传入的字符串的格式相匹配。
我不知道date + " " + start
您的问题中没有包含哪些参考资料,但是根据您的代码,以下内容应该可以毫无问题地运行:
String date = "13:05 2017-03-19";
DateTimeFormatter zoneParser = DateTimeFormatter.ofPattern("HH:mm yyyy-MM-dd");
this.startZoneTime = LocalDateTime.parse(date, zoneParser).atZone(ZoneId.systemDefault());
this.endZoneTime = LocalDateTime.parse(date, zoneParser).atZone(ZoneId.systemDefault());