1

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

我有这个代码,

DateTime dt = booking.CreateDateTime.Value;

其中 CreationDateTime 采用 UTC 格式。

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

任何机构对此都有想法。

这就是我将其更改为当地时间的方式。

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

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

booking.CreateDateTime = DateTime.UtcNow;
4

2 回答 2

0

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

  1. UTC 日期并不是真正的 UTC。

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

于 2012-11-03T17:33:11.783 回答
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
于 2012-11-03T17:56:46.950 回答