我正在尝试将格式为 1/1/2010 3:23:12 PM +00:00
的字符串转换为 Java.util.Date
无法将字符串格式转换为 Java 日期。
它没有将时间识别为AM/PM
String s = "1/1/2010 3:23:12 PM +00:00";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss a",Locale.ENGLISH);
Date date = sdf.parse(s));
需要将日期转换为AM/PM
的时间
最佳答案
OffsetDateTime
就是您要查找的内容。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyyy h:mm:ss a XXX");
OffsetDateTime time = OffsetDateTime.parse(str, formatter);
System.out.println(time);
您的模式有一些问题:
- 您的日期没有前导零,但您使用的是
dd
; - 与
MM
的月份相同; - 与
HH
的小时相同; - 您将 AM/PM 与 24 小时制时间格式说明符 (
H
) 结合使用;您应该使用h
来代替。
我不确切知道 SimpleDateFormat
如何处理字符串的时区部分,但没有给出时区的格式说明符。
这就是我喜欢这个日期和时间 API 的原因之一:它非常简单。
关于java - 转换格式为 1/1/2010 3 :23:12 PM +00:00 to a Java. util.Date 的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56350729/