如何在Java 8中格式化日期时间对象?
在Java应用程序中,您想使用JDK8中引入的新日期和时间API格式化日期时间对象。解决此问题的方法是使用java.time.format.DateTimeFormatter。本DateTimeFormatter类提供格式化打印和解析日期时间对象。
通过此类,我们可以使用预定义的常量来格式化日期时间对象,其中有许多可随时使用的预定义格式,例如ISO_DATE,ISO_DATE_TIME。您还可以使用模式字母来格式化日期时间对象,例如使用ddMMMMyyyy。格式化程序可以使用long或medium样式以本地化格式进行格式化。
让我们看下面的例子:
package org.nhooo.example.datetime; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Locale; public class DateTimeFormatterDemo { public static void main(String[] args) { //获取系统当前日期和时间。 LocalDateTime time = LocalDateTime.now(); //获取DateTimeFormatter的实例并打印 //系统当前日期时间的格式化版本 //使用预定义的格式化程序。 DateTimeFormatter format = DateTimeFormatter.ISO_DATE_TIME; System.out.printf("Time: %s%n", time.format(format)); //创建一个自定义格式化程序并格式化日期时间 //目的。 DateTimeFormatter customFormat = DateTimeFormatter.ofPattern("MMMM d, yyyy hh:mm a"); System.out.printf("Time: %s%n", time.format(customFormat)); //使用语言环境创建自定义格式器,然后格式化 //日期时间对象。 DateTimeFormatter localeFormat = DateTimeFormatter.ofPattern("d MMM yyyy HH:mm:ss", Locale.FRENCH); System.out.printf("Time: %s%n", time.format(localeFormat)); } }
上面代码的结果是:
Time: 2016-02-07T22:57:47.402 Time: February 7, 2016 10:57 PM Time: 7 févr. 2016 22:57:47