如何为客户获得正确的时区

时间:2010-07-28 10:01:13

标签: c# asp.net localization globalization

要获得用户的正确时区,我首先使用javascript获取偏移量: -

var offset =new Date().getTimezoneOffset();

然后我将值赋给服务器端变量。

我使用以下地址获取时区: -

 ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();

 foreach (TimeZoneInfo timeZone in timeZones)
 {
      if (timeZone.BaseUtcOffset.Equals(offset))
      {
                    return timeZone.Id;
      }
 }

现在的问题是: -

  • 有多个时区具有相同的偏移量,因此如何区分用户的时区。
  • 对于GMT都柏林,edingurgh,edson和伦敦时区,有两个偏移取决于是否允许日间省电模式(-60和0),我如何获得正确的偏移。

任何想法如何获得正确的时区和偏移?

2 个答案:

答案 0 :(得分:0)

我对时区并不熟悉(我认为某个时区可能有一个唯一的偏移量,但这似乎是不正确的)。但我发现nice article关于时区计算和启发式发布在4guysfromrolla上 - 希望它有用。

迪克

答案 1 :(得分:0)

要获得正确的时区和偏移量,您需要使用他们的IP地址和另一个具有基于IP的时区信息的服务并计算出来。