需要使用UTC时间解决一个问题,neo4j取出来的封装刚好是ZonedDateTime,记录下
Date与ZonedDateTime 互转
Date date=new Date();
ZonedDateTime zdt=ZonedDateTime.ofInstant(date.toInstant(), ZoneId.of("UTC"));
Date.from(zdt.toInstant());
ZoneId.of() 所需的时区名,列表在java.time.format.ZoneName类的zidMap中。
获取当前UTC时间
ZonedDateTime zdt=ZonedDateTime.now(ZoneId.of("UTC"))
LocalDateTime与ZonedDateTime互转
还可以通过给一个LocalDateTime加ZoneId,转成ZonedDateTime:
LocalDateTime ldt = LocalDateTime.of(2021, 3, 19, 10, 55, 10);
ZonedDateTime utc = ZonedDateTime.of(localDateTime, ZoneOffset.UTC);
ZonedDateTime zbj = ldt.atZone(ZoneId.systemDefault());
ZonedDateTime zdt = ldt.atZone(ZoneId.of("UTC"));
LocalDateTime ldt2 = zdt.toLocalDateTime();
转换时区
ZonedDateTime zbj = ZonedDateTime.now();
ZonedDateTime zdt = zbj.withZoneSameInstant(ZoneId.of("UTC"));
Format
String pattern = "yyyy-MM-dd HH:mm:ss";
ZonedDateTime zdt = ZonedDateTime.now();
String fotmatDate = zdt.format(DateTimeFormatter.ofPattern(pattern));