【发布时间】:2021-04-22 07:27:34
【问题描述】:
我的数据库中有 UTC TimeSpan,如下所示
item.UTCStartTime = new DateTime(item.StartTime.Ticks).ToUniversalTime().TimeOfDay;
现在我需要当前的 UTC DateTime 以及我的 UTCStartTime。我这样做如下,但它似乎提供了错误的时间。
DateTime time = DateTimeHelper.ConvertUTCToCurrentTimeZone(new DateTime(item.UTCStartTime.Ticks).ToUniversalTime());
然后我像这样更改了上面的行
DateTime time = DateTimeHelper.ConvertUTCToCurrentTimeZone(new DateTime()).Add(item.UTCStartTime);
现在我想我得到了正确的时间,除了句号。它显示与正确的相反。例如:PM 表示 AM,AM 表示 PM 更新:抱歉,时间仍然显示错误。
注意:DateTimeHelper.ConvertUTCToCurrentTimeZone() 只是一个 将UTC转换为所需时区的新日期时间的方法 时区编号
【问题讨论】:
-
什么是“UTC 时间跨度”?时间跨度 - 对我来说 - 类似于“48 小时”,TZ 代号对此毫无意义。现在,如果您将其定义为“从 DateTime 到 DateTime”,那就是另一回事了。就我而言,我需要更多细节,在这里。例如, DateTimeHelper 的实现会很有用。另外:你知道
DateTimeOffset的存在吗? -
也许也可以看看这个:Coding Best Practices Using DateTime in the .NET Framework。免责声明:这是一篇相当老的文章,我不确定其中有多少仍然适用。
-
嗯...澄清我的问题。我想将 UTC TimeSpan 转换为印度标准时间的 TimeSpan...
-
再次:“什么是'UTC TimeSpan'”?绝对不是TimeSpan?
-
不,没必要,我相信.. 我刚刚开始工作.. 现在.. 这样做了.. new DateTime(item.StartTime).ToString("hh:mm tt")