一篇文章概括 Java Date Time 的使用 (5)

传递给 of() 方法的参数是要为其创建 ZoneId 的时区的ID。在上面的例子中,ID 是“UTC+1”,它是 UTC (格林威治)时间的偏移量。另外也可以直接指定具体的时区 ID 字符串,这在本文开头有介绍。

ZonedDateTime 相比 LocalDateTime 只是多了地区信息,其内部维护了下面这 3 个变量来表示日期信息和地区:

final LocalDateTime dateTime;

final ZoneOffset offset;

final ZoneId zone;

所以其他的方法如获取日期时间信息和计算时间,请参考上述。

DateTimeFormatter

java.time.DateTimeFormatter 类用于解析和格式化用 Java 8 日期时间 API 中的类表示的日期。

预定义 DateTimeFormatter 对象

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

BASIC_ISO_DATE ISO_LOCAL_DATE ISO_LOCAL_TIME ISO_LOCAL_DATE_TIME ISO_OFFSET_DATE ISO_ZONED_DATE_TIME

这些预定义的 DateTimeFormatter 实例中的每一个都预先配置为格式化和解析不同格式的日期。 这里不解释所有这些预定义的 DateTimeFormatter 实例。 可以在 JavaDoc 中查看。

格式化 Date 的例子 DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE; String formattedDate = formatter.format(LocalDate.now()); System.out.println(formattedDate); // 20181204 String formattedZonedDate = formatter.format(ZonedDateTime.now()); System.out.println("formattedZonedDate = " + formattedZonedDate);// 20181204+0800

最后一行输出 20181204+0800 代表 UTC+8 时区的 2019 年、第 12 个月(12 月)和第 4 天(第 4 天)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygsxy.html