我需要使用 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
转换 UTC 日期和 System.TimeZoneInfo.ConverTimeToUtc
。
关于javascript - 如何使用 ASP.NET 查找客户机时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699450/