如果我不使用noda时间,我应该将Windows时区映射到IANA时区吗?

时间:2014-04-08 21:18:29

标签: .net timezone dst

我需要让用户从我的asp.net Web应用程序中的菜单中选择一个时区。该菜单目前包含102个区域,基于TimeZoneInfo.GetSystemTimeZones()返回的列表。如您所知,此列表不如IANA时区列表(或tz数据库)完整。

我知道noda时间支持IANA / tz数据库。不幸的是,由于范围限制,我无法将noda时间应用于我的解决方案。

问题:我是否应该将菜单更改为拥有IANA时区,然后将其映射到102个Windows时区?

现在我倾向于NO。我看到的问题是,实施此映射会隐藏我的应用实际上不支持IANA时区的事实。 Windows时区更为通用,因此DST规则不如IANA准确。只是想对此得到第二意见。感谢。

1 个答案:

答案 0 :(得分:0)

如果您的应用程序实现.Net TimeZoneInfo,那么您应该只通过DisplayName对象的TimeZoneInfo属性显示Windows时区,然后存储相应的Id属性作为用户的时区选择。

另一方面,如果您要公开基于地图的时区选择选择器,例如this onethis one,那么您可以使用其生成的IANA时区ID映射到Windows区域。但是如果你对这种用户界面没有这种需求,那么就不用担心了。