这种情况下正确的日期格式是什么?

问题描述

我一直试图将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'的真正影响。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...