工作中总有一些时间操作的场景,比如传入报文的时间格式化,一般情况下会使用SimpleDateFormat,但是有个弊端,当时间字符串格式不相同时,就需要创建不同的格式化的代码,烦不胜烦,终于,找到一个万能代码,不管什么格式的时间传入,都可以进行格式化,并且支持时区转换。下面时代码。代码中的时间字符串只是一个案例,可以用不同的时间字符串测试。
ZonedDateTime zdt = ZonedDateTime.parse("2023-04-08T09:32:08Z");
System.out.println(zdt);
ZonedDateTime zdt1 = zdt.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
System.out.println(zdt1);
LocalDateTime ldt = zdt1.toLocalDateTime();
System.out.println(ldt);
ZonedDateTime zonedDateTime = ldt.atZone(ZoneId.of("Asia/Shanghai"));
System.out.println(zonedDateTime);
Instant instant = zonedDateTime.toInstant();
System.out.println(instant);
long l = instant.toEpochMilli();
System.out.println(l);