关于javascript:如何使用ASP.NET查找客户端计算机时区

How to find the client machine time zone using ASP.NET

我需要使用ASP.NET(C#)或JavaScript查找客户端计算机的时区。 世界各地有哪些不同的时区以及如何根据用户时区转换日期和时间。

请提供一些建议或示例编码,以根据时区更改时间。


您无法从ASP.NET中找到客户端时区设置。

您可以使用JavaScript来指示当前时间,但有几个时区可以在任何给定时间同步。

在Chrome中,您可以从JavaScript日期对象中获取时区。根据我的发现,它没有特定的功能,但代码

1
(new Date()).toString()

会产生类似的东西

1
Mon Apr 18 2011 08:58:59 GMT+0200 (W. Europe Daylight Time)

在网站中,我发现的最佳方法是为每个用户设置一个设置,以指定所有时间显示的时区。如果JavaScript getUtcOffset给出的偏移量与用户时区的偏移量不同,我会向用户显示通知以查看其设置。如果可以从日期猜测时区(我只发现铬的情况),我会建议时区,但我仍然选择一个选择框供用户手动选择时区。

即便如此,也可能在没有脚本注意的情况下进行错误的时区设置,因为在一年的大部分时间里,两个时区可能完全同步。

一旦你有了一个时区(你可以用System.TimeZoneInfo.GetSystemTimeZones()枚举它们),你可以分别用System.TimeZoneInfo.ConvertTimeFromUtcSystem.TimeZoneInfo.ConverTimeToUtc转换UTC日期。