1、ZonedDateTime的使用
ZonedDateTime
类是Java 8中日期时间功能里,用于表示带时区的日期与时间信息的类。
1) 创建一个带有时区时间
//当前时间
ZonedDateTime dateTime = ZonedDateTime.now();
//指定值
ZoneId zoneId = ZoneId.of("UTC+1");
ZonedDateTime dateTime2 = ZonedDateTime.of(2015, 11, 30, 23, 45, 59, 1234, zoneId);
2) ZonedDateTime对象的常用方法
getYear()
getMonth()
getDayOfMonth()
getDayOfWeek()
getDayOfYear()
getHour()
getMinute()
getSecond()
getNano()
2、将ZonedDateTime转换成指定时区时间
1) 调用withZoneSameInstant方法,转换为系统默认时区
zonedDateTime = zonedDateTime.withZoneSameInstant(ZoneId.systemDefault());
2) 将UTC时间转成指定时区时间
ZonedDateTime utcZoned = ZonedDateTime.of(LocalDate.now().atTime(11, 30), ZoneOffset.UTC);
ZoneId swissZone = ZoneId.of("Asia/Shanghai");//更多时区标识字符串可参考下面的文档
ZonedDateTime swissZoned = utcZoned.withZoneSameInstant(swissZone);
LocalDateTime swissLocal = swissZoned.toLocalDateTime();
相关文档:Java ZonedDateTime转换成 LocalDateTime方法代码及之间区别