我正在开发一个项目,其中我的zoneid有限,并且我从前端获取zoneoff设置,所以这就是为什么我想将时间关闭设置转换为java中的zoneid。有没有办法将 zoneoffset 转换为区域 id。
最佳答案
ZoneOffset
是一种 ZoneId
!请参阅declaration在文档中。
public final class ZoneOffset
extends ZoneId
无需任何额外步骤。您可以直接将 ZoneOffset
对象传递给需要 ZoneId
的对象。
如果您真正想要做的是查找基于区域的区域 ID,例如Europe/London
,仅从 ZoneOffset
来看,现在或任何其他特定时刻可能会有多个具有偏移量的此类 ID。
要查找特定时刻指定偏移处的基于区域的 ID 列表,您可以执行以下操作:
ZoneId.getAvailableZoneIds().stream()
.map(ZoneId::of)
.filter(id -> id.getRules().getOffset(theSpecifiedInstant).equals(theSpecifiedOffset))
.collect(Collectors.toList());
// or just .toList() in Java 16+
关于java - 有没有办法在Java 8中将ZoneOffset转换为ZoneId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76419888/