Java 8 DateTimeFormatter

Java 8 DateTimeFormatter

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

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

1. 创建DateTimeFormatter

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

  1. 使用内置常量
  2. 使用ofPattern()方法创建自己的模式
//Use inbuilt pattern constants
DateTimeFormatter inBuiltFormatter1 = DateTimeFormatter.ISO_DATE_TIME;

DateTimeFormatter inBuiltFormatter2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

//Define your own custom patterns
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mma z");

2. 格式化ZonedDateTime

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

//Create formatter
DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a z");

//Zoned datetime instance
ZonedDateTime zdt = ZonedDateTime.now();

//Get formatted String
String zdtString = FOMATTER.format(zdt);

System.out.println(zdtString);		// 07/15/2018 at 02:51 PM IST

3. 格式化LocalDateTime

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

//Create formatter
DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a");

//Local date time instance
LocalDateTime localDateTime = LocalDateTime.now();

//Get formatted String
String ldtString = FOMATTER.format(localDateTime);

System.out.println(ldtString);		// 07/15/2018 at 02:49 PM

4. 格式化LocalDate

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

//Create formatter
DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy");

//Local date instance
LocalDate localDate = LocalDate.now();

//Get formatted String
String dateString = FOMATTER.format(localDate);

System.out.println(dateString);		//07/15/2018

5. 格式化LocalTime

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

//Create formatter
DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("hh:mm a");

//Local time instance
LocalTime localTime = LocalTime.now();

//Get formatted String
String localTimeString = FOMATTER.format(localTime);

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