java如何从瞬间和时间字符串构造ZoneDateTime?
给定一个对象Instant
,一个time string
表示特定ZoneId
的时间,如何构造一个ZonedDateTime
对象,其中日期部分(年、月、日)是从给定ZoneId
的瞬间开始的,时间部分是从给定time string
开始的
例如:
给定一个即时值对象143740400000(相当于20-07-2015 15:00 UTC),一个时间字符串21:00,以及一个表示欧洲/伦敦的ZoneId
对象,我想构造一个ZonedDateTime
对象,相当于20-07-2015 21:00欧洲/伦敦
# 1 楼答案
首先要将时间字符串解析为
LocalTime
,然后可以使用区域从Instant
调整ZonedDateTime
,然后应用时间。例如:# 2 楼答案
创建瞬间并确定该瞬间的UTC日期:
解析时间:
从所需ZoneId的LocalDate和LocalTime创建ZoneDateTime:
正如Jon所指出的,您需要决定您想要的UTC日期可能与当时给定时区的日期不同