我正在阅读 API for the ZoneId
类(class)。它指出 ID 分为三种类型:
- 源自 ZoneOffset
带有某种形式前缀的偏移式 ID。示例:
ZoneId.of("GMT+2"); ZoneId.of("UTC"); ZoneId.of("UT+01:00");
基于区域。示例:
ZoneId.of("Asia/Aden"); ZoneId.of("Etc/GMT+9"); ZoneId.of("Asia/Aqtau");
但是第一类的正确语法是什么?文档说
[ID from ZoneOffset] consists of 'Z' and IDs starting with '+' or '-'.
我应该使用什么字符串和 ZoneOffset
对象组合来创建第一种 ZoneId
?
最佳答案
这里实际上有两个问题需要回答
1) 第一种的正确语法是什么?
就是这样:
ZoneId z;
z = ZoneId.of("Z"); //for UTC
z = ZoneId.of("+02:00");
z = ZoneId.of("-02:00");
here你可以找到完整的列表
- Z - 代表 UTC
- +h
- +嗯
- +hh:mm
- -hh:mm
- +嗯嗯
- -嗯
- +hh:mm:ss
- -hh:mm:ss
- +hhmmss
- -hhmmss
我错了
'Z' AND IDs starting with '+' or '-'
意味着您总是需要一个Z
前缀(以组成类似Z+02:00
的内容)。我认为 OR 会更合适。
2) String 和 ZoneOffset
对象的 [需要] 组合是什么?
无需组合,您可以使用字符串或 ZoneOffset
对象:
ZoneId z;
z = ZoneId.of("+02:00");
z = ZoneId.of(ZoneOffset.of("+02:00").getId());
关于Java 8 : how to derive a ZoneId from ZoneOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32931871/