我在项目中使用https://github.com/JakeWharton/ThreeTenABP。
我有org.threeten.bp
ZonedDateTime:2019-07-25T14:30:57 + 05:30 [Asia / Calcutta]
如何加上时区小时数打印出来?即结果应该有2019-07-25T20:00:57
最佳答案
从ZonedDateTime
获取以秒为单位的偏移量
ZonedDateTime time = ZonedDateTime.parse("2019-07-25T14:30:57+05:30");
long seconds = time.getOffset().getTotalSeconds();
现在从
LocalDateTime
获取ZonedDateTime
部分LocalDateTime local = time.toLocalDateTime().plusSeconds(seconds); //2019-07-25T20:00:57
到LocalDateTime
获取此日期时间的LocalDateTime部分。
如果要获取UTC的本地日期时间,请使用
toInstant()
这将返回一个代表与该日期时间相同的时间点的Instant。该计算结合了本地日期时间和偏移量。
Instant i = time.toInstant(); //2019-07-25T09:00:57Z
关于java - 带时区的ZonedDateTime已添加到打印格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57205793/