如何将字符串解析为 Java 日期?
How to parse a string into a Java Date?
如何将 "Fri Feb 14 09:58:21 EST 2020"
之类的字符串解析为 Java 中的日期?
我能找到的最接近的例子是:
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
}
catch (ParseException e) {
e.printStackTrace();
}
但是它没有“ EST ”部分,正确的做法是什么?
你的模式不正确,问题很多:
EEEE
替换为 EEE
,
删除这个因为你的字符串没有逗号
,
第二个逗号也是一样
- 替换
yyyy
的位置放在最后
a
删除,因为它根本没有被使用,而是使用 z
来匹配 ETC
如果您使用 java-time,您可以使用此模式 EEE MMM dd HH:mm:ss z yyyy
:
解析您的日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
"EEE MMM dd HH:mm:ss z yyyy",
Locale.US);
ZonedDateTime zdt = ZonedDateTime.parse(str, formatter);
如何将 "Fri Feb 14 09:58:21 EST 2020"
之类的字符串解析为 Java 中的日期?
我能找到的最接近的例子是:
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
String dateInString = "Friday, Jun 7, 2013 12:10:56 PM";
try {
Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date));
}
catch (ParseException e) {
e.printStackTrace();
}
但是它没有“ EST ”部分,正确的做法是什么?
你的模式不正确,问题很多:
EEEE
替换为EEE
,
删除这个因为你的字符串没有逗号,
第二个逗号也是一样- 替换
yyyy
的位置放在最后 a
删除,因为它根本没有被使用,而是使用z
来匹配ETC
如果您使用 java-time,您可以使用此模式 EEE MMM dd HH:mm:ss z yyyy
:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
"EEE MMM dd HH:mm:ss z yyyy",
Locale.US);
ZonedDateTime zdt = ZonedDateTime.parse(str, formatter);