例如,我可以得到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值,但我在这里问是否有更好的方法与野田。