我也是 MVC3 和 C# 的新手。我将使用 C# 通过 MVC3 创建一个测试博客站点。用户可以在哪里写帖子,所以我需要存储用户发布的日期时间,并希望在每个其他用户那里显示该日期时间。对于这种情况,每个人都认为最好在GMT中存储日期时间。
我不知道如何获取用户本地日期时间并将其转换为GMT并存储。我不知道如何在每个用户本地日期时间中转换和显示存储的日期时间。
请帮我。请
我也是 MVC3 和 C# 的新手。我将使用 C# 通过 MVC3 创建一个测试博客站点。用户可以在哪里写帖子,所以我需要存储用户发布的日期时间,并希望在每个其他用户那里显示该日期时间。对于这种情况,每个人都认为最好在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"));