我的剃刀视图中有代码:

@Model.DateUpdated.ToLocalTime().ToString("dd/MM/yyyy HH:mm:ss")


在我的模型中,属性如下:

public DateTime DateUpdated { get; set; }


这是从存储在数据库中作为UTC DateTime的日期填充的。

因此,当数据库中的时间返回为01/01/2018 08:00时,我希望它在视图中以本地时间显示为01/01/2018 09:00(我正在运行该机器的机器)是UTC + 1。

但是,它仍然是从数据库中检索到的原始时间。

如何将其转换为运行应用程序的服务器所在的时区?

最佳答案

在输出字符串之前,建议您记录DateTimeKind字段的DateUpdated

例如

Console.WriteLine(DateUpdated.Kind);


为确保字段DateUpdated实际上是UTC,您可以尝试:

DateUpdated = new DateTime(DateUpdated.Ticks, DateTimeKind.Utc);


然后,当您输出时,结果实际上应该是本地时间。

如果原始DateUpdated字段的DateTimeKind是DateTimeKind.Local,则函数.ToLocalTime()将无效。当您从外部来源(例如,数据库,解析等

如果DateUpdated字段的.Kind属性为UTC或未指定,则ToLocalTime()调用应按预期工作。

关于javascript - 为什么.ToLocalTime不将UTC时间转换为本地时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50989273/

10-11 03:14