从区域/坐标查找时区
Looking up timezone from region / coordinates
我想根据 ISO 区域代码或坐标查找时区。
我有一个带有坐标、县和地区代码的数据点集合,例如:
33.942501,-118.407997,"美国","美国-加拿大"
我想找到 IANA 时区标识符,例如。 America/Los_Angeles
,根据以上信息。
是否可以用 NodaTime
做到这一点?我看不到从区域代码或位置查找 DateTimeZone
或时区标识符的方法。
GeoTimeZone NuGet package can provide a lookup by lat/long to IANA ID, and then you can use DateTimeZoneProviders.Tzdb[id]
to get the DateTimeZone
from that. See the project home page了解更多详情。
在 Noda Time 本身中,您可以使用 TzdbDateTimeZoneSource.Default
(或您已加载的)然后使用 ZoneLocations
或 Zone1970Locations
属性来查找特定 ISO-3166 的区域国家...但它们不会低于“国家”级别(尽管它们确实具有范例 lat/long 值)。它们基于 zone.tab and zone1970.tab - 因此 Noda Time 中也不存在该文件中不存在的任何信息。
听起来 GeoTimeZone 可能是您最好的选择。
我想根据 ISO 区域代码或坐标查找时区。
我有一个带有坐标、县和地区代码的数据点集合,例如:
33.942501,-118.407997,"美国","美国-加拿大"
我想找到 IANA 时区标识符,例如。 America/Los_Angeles
,根据以上信息。
是否可以用 NodaTime
做到这一点?我看不到从区域代码或位置查找 DateTimeZone
或时区标识符的方法。
GeoTimeZone NuGet package can provide a lookup by lat/long to IANA ID, and then you can use DateTimeZoneProviders.Tzdb[id]
to get the DateTimeZone
from that. See the project home page了解更多详情。
在 Noda Time 本身中,您可以使用 TzdbDateTimeZoneSource.Default
(或您已加载的)然后使用 ZoneLocations
或 Zone1970Locations
属性来查找特定 ISO-3166 的区域国家...但它们不会低于“国家”级别(尽管它们确实具有范例 lat/long 值)。它们基于 zone.tab and zone1970.tab - 因此 Noda Time 中也不存在该文件中不存在的任何信息。
听起来 GeoTimeZone 可能是您最好的选择。