Java 8 的 ZoneOffset 是不是考虑了夏令时?
Posted
技术标签:
【中文标题】Java 8 的 ZoneOffset 是不是考虑了夏令时?【英文标题】:Does Java 8’s ZoneOffset account for DST?Java 8 的 ZoneOffset 是否考虑了夏令时? 【发布时间】:2018-09-19 20:15:18 【问题描述】:正如我在标题中提到的,Java 8 的 ZoneOffset 是否考虑了夏令时?我可以在不同的夏季/冬季时间有不同的区域偏移量吗?
【问题讨论】:
docs.oracle.com/javase/8/docs/api/java/time/ZoneOffset.html 【参考方案1】:不,ZoneOffset
是不变的。要考虑夏令时(夏令时),您需要一个ZoneId
,它考虑了 DST 和 UTC 偏移的其他变化。因此将对应于夏季和冬季不同的ZoneOffset
s如果您的时区使用 DST(远离所有时区)。
编辑:ZoneOffset
是ZoneId
的子类,所以你可能会说ZoneOffset
也是ZoneId
的一种。但是一种特殊的ZoneId
,偏移量永远不会改变。这种继承关系并不能反映现实生活中偏移量和区域之间的关系,但之所以这样做是因为它在编程中经常很实用。
【讨论】:
以上是关于Java 8 的 ZoneOffset 是不是考虑了夏令时?的主要内容,如果未能解决你的问题,请参考以下文章
Java 17 java.lang.reflect.InaccessibleObjectException:无法将字段设为私有最终 java.time.ZoneOffset