我的剃刀视图中有代码:
@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/