我在项目中使用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/

10-14 09:52