我的网络服务器位于东海岸。 我在太平洋标准时间下午1点(美国东部时间下午4点)发送了一封来自我的网络服 我住在西海岸,当我看到这个页面时,它显示的是下午4点,这对我来说是未来的时间。
我怎样才能看到下午1点,东海岸4PM等人?
日期存储在MongoDB中,即UTC。我还在显示之前转换日期:
@Model.DateSent.ToLocalTime().ToString();
这是我设置邮件发送时间的方式:
DateTime.UtcNow <-- So I am storing date in UTC already
由于
答案 0 :(得分:1)
您的问题分为两部分。第一个是在C#中本地化dateTime的机制。由于我不是Windows用户,我会将其留给其他人来回答,或者你要查看文档,但我愿意打赌ToLocalTime()有一个朋友带有TimeZone或Locale
第二部分,更有趣,以及过去几次我必须处理的事情是如何知道使用什么时区。没有正确的答案,但有一些策略:
getTimezoneOffset()
并将答案推送到服务器。我的第一选择是用户偏好。如果这不是一个选项,我可能会从客户端推送时区。如果这涉及太多,请选择IP地理位置。