如何处理每条聊天消息的时区

我正在使用ASP.NET创建一个Web聊天应用程序。 我已经让聊天系统工作,因为消息被发送并转发回客户端。 但是我注意到了一些东西,但从未想过这会是一个问题。 我来自英国,聊天应用程序位于美国的服务器上,注意到消息显示时间,时间位于美国时区。 我将如何设置与用户时区相对应的时区。

以UTC格式存储您的数据。 总是。 因此,不是存储GETDATE() ,而是在SQL Server 2008+中存储GETUTCDATE() (或SYSUTCDATETIME() )。

这样可以很容易地将聊天中的所有时间转换为用户所在的任何时区。如果您不想在SQL中执行此操作,ASP.NET中有很多工具可以帮助您进行此转换。