代码之家  ›  专栏  ›  技术社区  ›  Ehud Lev

Ruby时区字符串到Java时区

  •  1
  • Ehud Lev  · 技术社区  · 8 年前

    我有一个Ruby进程,它根据 ruby TimeZone Class 所以在表中我得到了字符串,比如:

    • “太平洋时间(美国和加拿大)”
    • “东部时间(美国和加拿大)”
    • “UTC”
    • “巴黎”

    等等…… 是否有方法(非硬编码映射)读取这些字符串并将其转换为 java Timezone instance ?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Matt Johnson-Pint    8 年前

    标准TZDB/IANA时区标识符的Rails时区名称的权威源是 TimeZone.MAPPING Rails源代码中的常量 here . 如果您能够在Rails代码中访问这个映射,那么您不需要硬编码任何东西。

    如果你在Java代码中需要进行翻译,那么你必须将这个映射从Rails代码解析成Java代码中可用的东西,并定期检查更改。谢天谢地,Rails开发人员似乎并不经常更改这个列表。

    我不知道Java库已经为你做了这件事,但是.NET开发人员可以利用我的 TimeZoneConverter 库,它导入此映射。如果您想为此编写自己的代码,请随意翻译我的 LoadRailsMapping 从C到Java的功能。

    另请参见下面的关于Rails时区名称的注释 the timezone tag wiki .