如何在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