Java中如何将 ZonedDateTime格式化为字符串?

DateTimeFormatter类有许多内置的格式化程序,我们可以在大多数情况下使用它们,例如

  • ISO_ZONED_DATE_TIME
  • ISO_DATE_TIME
  • ISO_INSTANT
  • RFC_1123_DATE_TIME

Java 格式化日期时间实例:

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main 
{
    public static void main(String[] args)
    {
        ZonedDateTime zonedDateTime = ZonedDateTime.of(LocalDateTime.now(), 
        								ZoneId.of("America/Los_Angeles"));

        //default pattern - ISO_ZONED_DATE_TIME
        System.out.println(zonedDateTime);

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_DATE_TIME));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_INSTANT));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE));

        System.out.println(zonedDateTime.format(DateTimeFormatter.ISO_LOCAL_TIME));
		
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy - HH:mm:ss z"); // 自定义格式
		String formattedString = zonedDateTime.format(formatter);

        System.out.println(formattedString);
    }
}

输出:

2019-04-02T14:32:47.199-07:00[America/Los_Angeles]
2019-04-02T14:32:47.199-07:00[America/Los_Angeles]
2019-04-02T14:32:47.199-07:00[America/Los_Angeles]
2019-04-02T21:32:47.199Z
2019-04-02T14:32:47.199
2019-04-02
14:32:47.199
04/02/2019 - 14:36:37 IST
日期:2020-09-17 00:09:19 来源:oir作者:oir