【发布时间】:2019-12-22 14:33:15
【问题描述】:
我有一个 MapperUtility 类,它需要从发送字符串时间"Fri Nov 22 2013 12:12:13 GMT+0000 (UTC)" 的 Web 服务映射字符串
现在,我正在使用以下代码将其转换为 LocalDateTime:
String time = "Fri Nov 22 2013 12:12:13 GMT+0000 (UTC)";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM dd yyyy HH:mm:ssZ");
dtf.withZone(ZoneId.of("UTC"));
LocalDateTime convertedDate = LocalDateTime.parse(time, dtf);
但我在 GMT+0000 (UTC) 开始时出现异常。 当我删除 GMT 以外的字符时,它可以工作。 将它们转换为日期时间后,我需要将它们转换为长毫秒。 请指教。谢谢。
【问题讨论】:
-
如果您检测到字符串的结尾,将
GMT+0000 (UTC)替换为GMT怎么样?如果这是唯一的边缘情况之一,请快速修复。 -
你遇到了什么异常?
-
嗨@cameron1024 感谢您的回复。我收到此异常:线程“main”中的异常 java.time.format.DateTimeParseException: Text 'Fri Nov 22 2013 12:12:13 GMT+000 (UTC)' could not be parsed at index 25. 我应该删除GMT 以外的字符串?在将它们转换为毫秒之前?但我不确定这是否是正确的方法。 :(
标签: java java-8 datetime-format java-time localdate