如何将UTC时间更改为当地时间。
我有这段代码,
DateTime dt = booking.CreateDateTime.Value;
其中CreationDateTime采用UTC格式。
当我在客户端将时间更改为当地时间时,它比当地时间快7小时。
任何机构都有这方面的想法。
这就是我如何将其更改为当地时间。
var localTime = TimeZone.CurrentTimeZone.ToLocalTime(dt);
预订时,日期时间的服务器端代码为
booking.CreateDateTime = DateTime.UtcNow;
答案 0 :(得分:0)
实际上只有两件事可能是错的:
UTC日期实际上不是UTC。
运行它的机器未设置为正确的时区。
答案 1 :(得分:0)
看起来.net假设日期是在当地时间。在以下代码中,dt1和dt3都与dt相同。一种解决方案是使用TimeZone.CurrentTimeZone.GetUtcOffset并自己进行计算。
dt = Now
dt1 = TimeZone.CurrentTimeZone.ToLocalTime(dt)
dt2 = TimeZone.CurrentTimeZone.ToUniversalTime(dt)
dt3 = dt.ToLocalTime
dt4 = dt.ToUniversalTime