在Java应用程序中,您想使用JDK 8中引入的新日期和时间API格式化日期时间对象。解决此问题的方法是使用java.time.format.DateTimeFormatter。本DateTimeFormatter类提供格式化打印和解析日期时间对象。
通过此类,我们可以使用预定义的常量来格式化日期时间对象,其中有许多可随时使用的预定义格式,例如ISO_DATE,ISO_DATE_TIME。您还可以使用模式字母来格式化日期时间对象,例如使用dd MMMM yyyy。格式化程序可以使用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