原文: https://howtodoinjava.com/java/date-time/java8-datetimeformatter-example/

Java 示例,可使用DateTimeFormatterZonedDateTimeLocalDateTimeLocalDateLocalTime格式化为具有预定义和自定义模式的字符串。

1. 创建DateTimeFormatter

您可以通过两种方式创建DateTimeFormatter

  1. 使用内置常量
  2. 使用ofPattern()方法创建自己的模式
  1. //Use inbuilt pattern constants
  2. DateTimeFormatter inBuiltFormatter1 = DateTimeFormatter.ISO_DATE_TIME;
  3. DateTimeFormatter inBuiltFormatter2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
  4. //Define your own custom patterns
  5. DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mma z");

2. 格式化ZonedDateTime

Java 示例,将ZonedDateTime格式化为带有DateTimeFormatter的字符串。

  1. //Create formatter
  2. DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a z");
  3. //Zoned datetime instance
  4. ZonedDateTime zdt = ZonedDateTime.now();
  5. //Get formatted String
  6. String zdtString = FOMATTER.format(zdt);
  7. System.out.println(zdtString); // 07/15/2018 at 02:51 PM IST

3. 格式化LocalDateTime

LocalDate没有时区部分。 因此,相应地创建模式。

  1. //Create formatter
  2. DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a");
  3. //Local date time instance
  4. LocalDateTime localDateTime = LocalDateTime.now();
  5. //Get formatted String
  6. String ldtString = FOMATTER.format(localDateTime);
  7. System.out.println(ldtString); // 07/15/2018 at 02:49 PM

4. 格式化LocalDate

LocalDate没有时间和时区部分。 因此,相应地创建模式。

  1. //Create formatter
  2. DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy");
  3. //Local date instance
  4. LocalDate localDate = LocalDate.now();
  5. //Get formatted String
  6. String dateString = FOMATTER.format(localDate);
  7. System.out.println(dateString); //07/15/2018

5. 格式化LocalTime

LocalTime没有日期和时区部分。 因此,相应地创建模式。

  1. //Create formatter
  2. DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("hh:mm a");
  3. //Local time instance
  4. LocalTime localTime = LocalTime.now();
  5. //Get formatted String
  6. String localTimeString = FOMATTER.format(localTime);
  7. System.out.println(localTimeString); // 02:53 PM

6. 有用的格式化模式

模式 示例
yyyy-MM-ddISO 2018-07-14
dd-MMM-yyyy 14-Jul-2018
dd/MM/yyyy 14/07/2018
E, MMM dd yyyy Sat, Jul 14 2018
h:mm a 12:08 PM
EEEE, MMM dd, yyyy HH:mm:ss a Saturday, Jul 14, 2018 14:31:06 PM
yyyy-MM-dd'T'HH:mm:ssZ 2018-07-14T14:31:30+0530
hh 'o''clock' a, zzzz 12 o’clock PM, Pacific Daylight Time
K:mm a, z 0:08 PM, PDT

7. 更多例子

  1. Java 8 ResolverStyle.STRICT – 严格的日期验证和解析

学习愉快!

参考文献:

  1. DateTimeFormatter Javadoc
  2. ZonedDateTime Javadoc
  3. LocalDateTime Javadoc
  4. LocalDate Javadoc
  5. LocalTime Javadoc