在代码隐藏中:
我使用DateTime.ToUniversalTime()
将我的日期存储在SQL Server中
然后,我阅读了日期,然后在DateTime.ToLocalTime()
转换回来,然后在网页上显示它。
当我的Web服务器与客户端处于完全不同的时区时,这不起作用。我的所有转换都在Web服务器上进行。在代码隐藏中尝试了这个,我相信我需要在客户端中完成它。
确保浏览器的实际本地时间与GMT正确转换的首选方法是什么?
答案 0 :(得分:1)
一种选择是在用户的常规配置文件信息中询问用户的时区,然后在服务器上使用该信息。
答案 1 :(得分:1)
如果你不能只显示你所确定的服务器时区的时间(例如说“中午12点”)或让用户在他们的个人资料中提供他们的时区,那么你需要使用javascript进行转换时间。我不想完成所有步骤,但是这个页面有一个很好的演练:
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6016329.html
请注意,显示用户本地时间的首选方法是让他们在个人资料中提供他们的时区,以便您可以在服务器上执行此转换。
答案 2 :(得分:0)
我见过的大多数实现需要本地时间依赖于用户指定时区,然后将其存储在服务器上的配置文件中,然后用于调整显示的日期/时间。这似乎是最强大的方法。另一种方法是尝试使用其IP地址(GeoIP或类似地址)建立用户位置并进行相应调整。这并不完全可靠,因为一些公司的网关与用户没有地理位置。
答案 3 :(得分:0)
Google上的大多数博客都指出.NET无法提供获取客户端时区的方法。
然而大多数人都说:
要求用户输入他的时区,然后使用该信息显示数据
使用javascript函数,以分钟为单位返回浏览器的时区偏移量,然后将其发送到服务器进行进一步处理。请参阅:http://weblogs.asp.net/cprieto/archive/2010/01/03/handling-timezone-information-in-asp-net.aspx