gpt4 book ai didi

java - 是否有一个 Java 库可以将 Olsen 时区 id 转换为 Windows 时区 id

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:17 30 4
gpt4 key购买 nike

我有一个旧版 Windows 应用程序,它从数据库读取数据。其中一列是“TimeZoneInfoId”。在传统世界中,它是由另一个 Windows 应用程序编写的,因此它存储 Windows 字符串: TimeZoneInfo.CurrentTimeZone.StandardName

我现在需要从 Java 应用程序写入该表。所以我试图找到一个能够映射 tz database 中的时区 ID 的库。 (以前称为 Olson 数据库)到 Windows 时区 ID。理想情况下,我想使用一个库,理论上我可以在将来更新到更高版本,因为我读到时区信息有时会发生变化。

我已经在网上进行了一些搜索,我找到的答案通常是编写您自己的映射/查找或使用 NodaTime 并在 .NET 中进行转换(如果您确实需要一个可以更新的库)。

我无法更新遗留代码(无需完全重写),因此只需在这里提出问题,因为我找到的大多数答案都有点旧,所以也许有一些我可以利用的新东西;)

如果不是,它必须是一个自定义查找函数 hfea。

最佳答案

好吧,假设您的意思是该值来自 TimeZoneInfo.Local.Id,那么您可以进行此转换。如果它来自 TimeZone.CurrentTimeZone.StandardName,那么将会有一些条目失败,因为 StandardName 是本地化字符串,而英文形式不一定与 Id 匹配

回答你的问题,你可以看看 source XML data in CLDR ,并以类似于 how I described here 的方式解析它.

或者,如果您确实想要一个库,请考虑 ICU4J有方法getWindowsIdgetIDForWindowsID使用相同的数据进行转换。然而,ICU 可能非常大,所以如果您只需要它来做一件事,那么您最好直接使用 XML。

关于java - 是否有一个 Java 库可以将 Olsen 时区 id 转换为 Windows 时区 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604854/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com