Java 如何将 ZonedDateTime 和 LocalDateTime 进行相互转换
查看更多教程 https://on  itroad.com

Java 将 ZonedDateTime 转换为 LocalDateTime

使用 ZonedDateTime.toLocalDateTime()方法获取没有时区信息的本地日期时间。

ZonedDateTime zdtAtET = ZonedDateTime.now(ZoneId.of("America/New_York"));

LocalDateTime ldt = zdtAtET.toLocalDateTime();
System.out.println(zdtAtET);
System.out.println(ldt);

输出:

2018-07-15T01:59:52.054839900-04:00[America/New_York]
2018-07-15T01:59:52.054839900

Java 将 LocalDateTime 转换为 ZonedDateTime

ZonedDateTime = LocalDateTime + ZoneId

LocalDateTime ldt = LocalDateTime.now();			//Local date time
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" ); 		//Zone information
ZonedDateTime zdtAtAsia = ldt.atZone( zoneId );		//Local time in Asia timezone
ZonedDateTime zdtAtET = zdtAtAsia
		.withZoneSameInstant( ZoneId.of( "America/New_York" ) ); //Sama time in ET timezone

输出:

2018-07-15T11:27:46.203763100+05:30[Asia/Kolkata]
2018-07-15T01:57:46.203763100-04:00[America/New_York]
日期:2020-09-17 00:09:42 来源:oir作者:oir