Java如何将字符串转换为 ZonedDateTime

在 Java 8 中使用 ZonedDateTime parse() 方法将字符串中的日期转换为 ZonedDateTime对象。

// Default pattern
ZonedDateTime today = ZonedDateTime.parse("2019-04-01T16:24:11.252+05:30[Asia/Calcutta]");
System.out.println(today);
// Custom pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss a z");
ZonedDateTime dateTime = ZonedDateTime.parse("2019-03-27 10:15:30 AM +05:30", formatter);
System.out.println(dateTime);
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss z");
ZonedDateTime dateTime1 = ZonedDateTime.parse("Mon, 1 Apr 2019 11:05:30 GMT", formatter1);
System.out.println(dateTime1);

输出:

2019-04-01T16:24:11.252+05:30[Asia/Calcutta]
2019-03-27T10:15:30+05:30
2019-04-01T11:05:30Z[GMT]

默认的日期模式是: DateTimeFormatter.ISO_ZONED_DATE_TIME.
还可以是:

  • RFC_1123_DATE_TIME - RFC-1123 日期时间格式化程序,例如Tue, 3 Jun 2008 11:05:30 GMT
  • ISO_OFFSET_DATE_TIME - ISO 日期时间格式化程序,用于格式化或者解析具有偏移量的日期时间,例如 2011-12-03T10:15:30+01:00
  • ISO_ZONED_DATE_TIME - 类似 ISO 的日期时间格式化程序,用于格式化或者解析具有偏移量和区域的日期时间,例如2011-12-03T10:15:30+01:00[Europe/Paris]'。
日期:2020-09-17 00:09:35 来源:oir作者:oir