代码之家  ›  专栏  ›  技术社区  ›  John K

尝试将Microsoft Windows BCL区域映射到Tzdb区域以访问其缩写值

  •  0
  • John K  · 技术社区  · 6 年前

    例如,我可以得到BCL时区,如下所示。这个 incomingValue 例如,变量是区域的Microsoft Windows名称 Pacific Standard Time https://support.microsoft.com/en-ca/help/973627/microsoft-time-zone-index-values :

     var bclZone = DateTimeZoneProviders.Bcl.GetZoneOrNull(incomingValue); // ok - it works
    

    接下来,获得等效的Tzdb区域值(或多个区域)的最佳方法是什么?我一直在摆弄下面的代码,但没有用。

    // The Tzdb provider won't accept a BCL zone value or a Microsoft zone name.
     DateTimeZoneProviders.Tzdb.GetZoneOrNull(.. ? ..);     
    

    我宁愿使用Tzdb值,也不愿手动映射,因为我认为在这两个区域提供程序之间,它们包含了我需要的一切“现成的”。

    我也在考虑使用UTC-/+计算来转换到Tzdb值,但我在这里问是否有更好的方法与野田。

    0 回复  |  直到 6 年前