- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够从完整的字符串名称“Australia/Brisbane”中获取 Java 中的时区对象
TimeZone tz = TimeZone.getTimeZone("Australia/Brisbane");
如何从区域名称中获取 java.util.TimeZone
“(GMT+10:00) 布里斯类”或
“(GMT) 格林威治标准时间:都柏林、爱丁堡、里斯本、伦敦”或
“(GMT+01:00) 布鲁塞尔、哥本哈根、马德里、巴黎”或
“(GMT-09:00)阿拉斯加”
我需要转换成 TimeZone 对象的上述区域名称字符串来自 Windows 10 >>“日期和时间设置”>>“时区”下拉菜单。
最佳答案
"(GMT+10:00) Brisbane"
之类的字符串是显示名称。它们是旨在提高人类可读性的资源字符串,并本地化为特定语言(在本例中为英语)。它们可以并且确实会根据需要随时间变化。当本地化为其他语言时,它们会有所不同。
从你提供的那些来看,它们可能来自 Windows,但它们并不完全是 Windows 10 英文版的当前集合。它们可能来自旧版本的 Windows,但你应该自己验证一下。
相比之下,"Australia/Brisbane"
是一个 IANA时区标识符。它就是那个字符串,并且不会因语言而改变(即使其他语言有拼写或符号变化)。它们用于编程识别,例如通过传递给您展示的 getTimeZone
API。
IANA time zones是 Java 中使用的主要标识符。 Windows 有自己的一套。等效的 Windows 标识符是 "E. Australia Standard Time"
- 无论语言如何,它都是那个字符串。
Unicode Common Locale Data Repository (CLDR)项目维护 windowsZones.xml
中两组标识符之间的规范映射文件。它还包括当前英文 Windows 显示名称作为注释以帮助阅读文件。
简而言之:我不建议映射显示名称,因为它们已本地化并且可以更改。请改用标识符。
关于java - 如何从 "(GMT+10:00) Brisbane"或 "(GMT+01:00) Brussels, Copenhagen, Madrid, Paris"等区域名称获取 Java 中的 TimeZone 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63811284/
我能够从完整的字符串名称“Australia/Brisbane”中获取 Java 中的时区对象 TimeZone tz = TimeZone.getTimeZone("Australia/Brisba
我能够从完整的字符串名称“Australia/Brisbane”中获取 Java 中的时区对象 TimeZone tz = TimeZone.getTimeZone("Australia/Brisba
我是一名优秀的程序员,十分优秀!