我正在使用ASP.NET创建一个Web聊天应用程序。我已经让聊天系统工作,因为消息被发送并转发回客户端。但有一些我注意到但从未想过这会是一个问题。我来自英国,聊天应用程序位于美国的服务器上,注意到当消息显示时间时,时间位于美国时区。我将如何设置与用户时区相对应的时区。
答案 0 :(得分:5)
以UTC格式存储您的数据。总是。因此,不是存储GETDATE()
,而是将GETUTCDATE()
(或SYSUTCDATETIME()
存储在SQL Server 2008 +中。)
这使得在聊天中将所有次转换为用户所在的任何时区变得非常容易。而且,如果你不穿,ASP.NET中有很多工具可以帮助你进行这种转换。我不想在SQL中做到这一点。
答案 1 :(得分:0)
我正在将日期区域更改为我需要的巴西时间。
VALUES (GETDATE () AT TIME ZONE 'UTC' AT TIME ZONE 'E. South America Standard Time');