1

我在我的网站中使用“NodaTime.dll,v1.2.0.0”来计算时区我使用此代码来检索 ZonedId:

 var tempInfo = (from location in TzdbDateTimeZoneSource.Default.ZoneLocations
                where  location.CountryCode.Equals(countryCode, 
                           StringComparison.OrdinalIgnoreCase)
                    select new { location.ZoneId, location.CountryName })
                .FirstOrDefault();

它工作正常,但是当我想通过国家代码将它用于“阿森松岛”时:“AC”或英国的“UK”,它返回 null。

我想知道这个库不支持这个还是我走错路了?

4

1 回答 1

3

这实际上只是 CLDR 和 TZDB 中的数据问题。(碰巧,我正在更新到 CLDR v25 映射数据。)

英国使用其 ISO-3166 代码“GB”。阿森松岛的 ISO-3166 代码是 SH-AC,并且 SH存在,映射到“Atlantic/St_Helena”。(我什至不确定圣赫勒拿岛本身是否通常算作一个国家;国家变得非常混乱。)

于 2014-05-13T17:59:43.627 回答