Java DateTimeFormatter

时间:2020-01-09 10:35:55  来源:igfitidea点击:

JavaDateTimeFormatter类用于解析和格式化用Java 8日期时间API中的类表示的日期。 " DateTimeFormatter"位于" java.time.format"包中,因此完全限定的类名称为" java.time.format.DateTimeFormatter"。

预定义的DateTimeFormatter实例

" DateTimeFormatter"类包含一组预定义的(常量)实例,这些实例可以解析和格式化标准日期格式的日期。这样省去了为" DateTimeFormatter"定义日期格式的麻烦。 " DateTimeFormatter"类包含以下预定义实例:

BASIC_ISO_DATE

ISO_LOCAL_DATE
ISO_LOCAL_TIME
ISO_LOCAL_DATE_TIME

ISO_OFFSET_DATE
ISO_OFFSET_TIME
ISO_OFFSET_DATE_TIME

ISO_ZONED_DATE_TIME

ISO_INSTANT

ISO_DATE
ISO_TIME
ISO_DATE_TIME

ISO_ORDINAL_TIME
ISO_WEEK_DATE

RFC_1123_DATE_TIME

这些预定义的" DateTimeFormatter"实例中的每个实例均已预先配置为格式化日期,并从不同格式解析日期。我不会解释所有这些预定义的" DateTimeFormatter"实例。我们可以在JavaDoc中的" DateTimeFormatter"类中阅读有关它们的信息。但是,我将解释其中的一些内容,以便我们对它们的功能有所了解。

格式化日期

一旦有了DateTimeFormatter的实例,就可以使用format()方法格式化日期。这是一个DateTimeFormatter``format()示例:

DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;

String formattedDate = formatter.format(LocalDate.now());
System.out.println(formattedDate);

这个例子格式化了一个LocalDate实例。该代码的示例输出可能是:

20140703

此输出表示2014年,第07个月(7月)和第03天(第三天)。

这是格式化ZonedDateTime实例的示例:

DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;

String formattedZonedDate = formatter.format(ZonedDateTime.now());
System.out.println("formattedZonedDate = " + formattedZonedDate);

该示例的输出如下所示:

20140703+0200

此输出表示UTC + 2时区中的2014年,第7个月(7月)和第3天(第三天)。