c# - 在MVC3(C#)中将GMT日期时间转换为用户本地时间并将本地时间转换为GMT日期时间

标签 c# asp.net-mvc-3 datetime

我也是 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"));

关于c# - 在MVC3(C#)中将GMT日期时间转换为用户本地时间并将本地时间转换为GMT日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387487/

相关文章:

c# - 在 C# 中安全/惯用地提取子数组

asp.net-mvc - 如何从 VOID 方法重定向到 MVC3 中的另一个操作/ Controller ?

asp.net-mvc - 为什么@Using Html.BeginForm 中的普通标记需要@?

c# - 使用 DateTime.ParseExact 将字符串转换为日期时间

angular - date.getDate 不是函数 Typescript

c# - 以这种方式使用 FileStream.seek 安全吗?

c# - 将 Entity Framework 4.4 与 Mysql 结合使用

c# - 如何找到段的组合来构建轨道 : possible Subset Sum

jquery - MVC3多文件上传插件支持IE 9吗?

mysql - 如何将两组日期之间的每个日期存储在单独的列中