我需要使用ASP找到客户端机器的时区。. NET (c#)或JavaScript。世界各地有哪些不同的时区,以及如何根据用户的时区转换日期和时间。
请提供一些建议或示例代码来根据时区更改时间
无法从ASP.NET中找到客户端时区设置。
您可以使用JavaScript来告诉当前时间,但是有几个时区可以在任何给定的时间同步。
在Chrome中,您可以从JavaScript日期对象中获取时区。从我发现的情况来看,它没有特定的函数,但是代码
(new Date()).toString()
将生成类似
的内容Mon Apr 18 2011 08:58:59 GMT+0200 (W. Europe Daylight Time)
在网站中,我发现最好的方法是为每个用户设置一个时区来显示所有时间。如果JavaScript getUtcOffset
给出的偏移量与用户所在时区的预期偏移量不同,我将显示一个通知,让用户查看他们的设置。如果可以从日期猜出时区(我只发现在chrome中是这种情况),我会建议该时区,但我仍然采用选择框让用户手动选择时区。
即使这样,也有可能有错误的时区设置,而脚本没有注意到它,因为在一年中的大部分时间里,这两个时区可能是完全同步的。
一旦你有了一个时区(你可以用System.TimeZoneInfo.GetSystemTimeZones()
枚举它们),你可以分别用System.TimeZoneInfo.ConvertTimeFromUtc
和System.TimeZoneInfo.ConverTimeToUtc
转换UTC日期。