在MVC3(C#)将GMT的日期时间转换为用户本地时间和本地时间到GMT日期时间

问题描述:

我是新的MVC3和C#也。我将用C#创建一个MVC3测试博客网站。用户可以写邮件,所以我需要存储用户发布的日期时间,并希望显示该日期时间每个其他用户有自己的当地时间。对于这种情况,大家都认为最好在GMT中存储日期时间。在MVC3(C#)将GMT的日期时间转换为用户本地时间和本地时间到GMT日期时间

我不知道如何获得用户本地日期时间并将其转换为格林尼治标准时间和商店。 我不知道如何转换并在每个用户本地日期时间显示存储的日期时间。

请帮帮我。请

我只能在一点上不同意COLD TOLD。如果您使用DateTime.Now,则会得到运行应用程序服务器的机器的日期&。虽然这没关系,但在存储时,您还需要将时区与它一起存储。否则,在转换时,您不知道您要从哪个时区转换而来。如果您将其硬编码到您的应用程序中,然后将其移至不同时区的数据中心服务器,则必须更改该应用程序设置。另一方面,如果您始终使用DateTime.UtcNow存储日期&时间,那么您只需要在数据库中存储1个值。当需要将其转换为时区语言环境时,您不必点击数据库以查明信息最初计算的时区 - 它始终是UTC/GMT。

var destinationTimeZone = TimeZoneInfo.FindSystemTimeZoneById(
    "US Mountain Standard Time"); 

utc = DateTime.UtcNow; 
mst = TimeZoneInfo.ConvertTimeFromUtc(utcTime, destinationTimeZone); 

Console.WriteLine("UTC: " + utc.ToString("yyyy-MM-dd HH-mm-ss")); 
Console.WriteLine("MST: " + mst.ToString("yyyy-MM-dd HH-mm-ss"));