【发布时间】:2017-06-05 09:35:26
【问题描述】:
如何在 Java 中将此字符串解析为日期 “2017-06-12T14:45:00+05:30” 我试过使用 SimpleDateFormat 但它抛出异常。 谢谢
【问题讨论】:
-
你用的是什么java版本?
如何在 Java 中将此字符串解析为日期 “2017-06-12T14:45:00+05:30” 我试过使用 SimpleDateFormat 但它抛出异常。 谢谢
【问题讨论】:
这似乎是一个有效的 ISO 偏移日期时间格式,所以这应该可以在不需要格式化程序的情况下工作:
OffsetDateTime date = OffsetDateTime.parse(input);
如果你真的需要java.util.Date,那么你可以使用:
Date legacyDate = Date.from(date.toInstant());
【讨论】:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ENGLISH);
Date date = format.parse(string);
日期是你的解决方案
【讨论】:
DateFormat、SimpleDateFormat 和Date 等长期过时的课程。现代类 lke OffsetDateTime 对程序员更友好。一个额外的好处是提到的类从问题中解析 ISO 8601 字符串,没有明确的格式。
只需在 SimpleDateForamt 中提供正确的模式
String startDateString = "09/23/2009";
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date startDate;
try {
startDate = df.parse(startDateString);
String newDateString = df.format(startDate);
System.out.println(newDateString);
} catch (ParseException e) {
e.printStackTrace();
}
【讨论】: