将Utc时间更改为本地时间

时间:2012-11-03 17:25:44

标签: c# datetime

如何将UTC时间更改为当地时间。

我有这段代码,

DateTime dt = booking.CreateDateTime.Value;

其中CreationDateTime采用UTC格式。

当我在客户端将时间更改为当地时间时,它比当地时间快7小时。

任何机构都有这方面的想法。

这就是我如何将其更改为当地时间。

var localTime = TimeZone.CurrentTimeZone.ToLocalTime(dt);

预订时,日期时间的服务器端代码为

booking.CreateDateTime = DateTime.UtcNow;

2 个答案:

答案 0 :(得分:0)

实际上只有两件事可能是错的:

  1. UTC日期实际上不是UTC。

  2. 运行它的机器未设置为正确的时区。

答案 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