Java 8 DateTimeFormatter

Java示例使用DateTimeFormatter格式化ZonedDateTimeLocalDateTimeLocalDateLocalTime以字符串预定义和自定义模式。

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

用格式化ZonedDateTime为字符串的Java示例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 “ 2018年7月14日”
dd/MM/yyyy “ 14/07/2018”
E, MMM dd yyyy “ 2018年7月14日星期六”
h:mm a “下午12:08”
EEEE, MMM dd, yyyy HH:mm:ss a “ 2018年7月14日星期六14:31:06 PM”
yyyy-MM-dd'T'HH:mm:ssZ “ 2018-07-14T14:31:30 + 0530”
hh 'o''clock' a, zzzz “太平洋夏令时间下午12点”
K:mm a, z “ PDT下午0:08”

7.更多例子

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

学习愉快!

参考文献:

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

saigon has written 1440 articles

Leave a Reply