如何解决这种情况下正确的日期格式是什么?
我一直试图将String解析为Date,但是,转换无法正常工作。
例如,我有这些字符串,它们是从网络服务中检索的。
Dec 9,2016 4:36:00 PM
Jan 12,2017 11:36:15 AM
我尝试使用这些格式,但是,转换失败。
MMM d,yyyy HH:mm:ss aaa
MMM d,yyyy hh:mm:ss a
我在哪里错了?
我收到此异常java.text.ParseException: Unparseable date: "Dec 9,2016 4:36:00 PM"
解决方法
请检查时间格式:
String dateString1 = "Dec 9,2016 4:36:00 PM";
String dateString2 = "Jan 12,2017 11:36:15 AM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d,yyyy h:mm:ss a");
LocalDateTime localDateTime1 = LocalDateTime.parse(dateString1,formatter);
LocalDateTime localDateTime2 = LocalDateTime.parse(dateString2,formatter);
System.out.println(localDateTime1);
System.out.println(localDateTime2);
在这种情况下(时间部分)看到的格式为:h:mm:ss a
(因为小时是4,而不是04),所以格式hh:mm:ss a
将失败
对于您的输入,打印内容为:
2016-12-09T16:36
2017-01-12T11:36:15
这只是@ C.P.O答案的变体,其使用的模式略有不同。
uses-feature
一些注意事项:
- y是“时代”
- 你是“年”
- 需要MMM。在您的情况下,“ M”和“ MM”均无效。
- 我更喜欢“ s”而不是“ ss”,因为“ s”将同时解析2和12,但是“ ss”将无法解析“ 2”
我不知道使用'y'而不是'u'的真正影响。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。