确定.net中UTC时间的时区偏移量

本文关键字:时区 偏移量 时间 UTC net 确定 | 更新日期: 2023-09-27 18:10:29

后端是c#和SQL Server。

我保存日志活动日期时间从不同的时区在UTC在我的DB。我需要填充一个全局分布式的前端,这样它就可以根据前端所在的位置本地化记录的UTC时间,例如PT, ET。它还需要处理夏令时,这是我遇到困难的地方。

由于夏令时,UTC偏移量根据一年中的时间而变化,在我知道日期/时间和时区的情况下,是否有办法让我找出c#中的UTC偏移量

确定.net中UTC时间的时区偏移量

如果我知道日期/时间和时区 ,是否有一种方法可以让我找出c#中的UTC偏移量

从技术上讲,您不应该需要来查找这些信息,底层系统时钟/日历/诸如此类的信息应该由您来处理。(我相信任何研究过日期-时间逻辑的人都会证明这一事实,至少可以说,它是不平凡的)

理想情况下,任何时候您需要转换时区,您有三个东西:

  1. 表示要转换的值的DateTime对象。
  2. 一个TimeZoneInfo对象,表示DateTime对象的已知当前格式(在本例中为UTC)。
  3. 表示目标时区的TimeZoneInfo对象。

考虑到这些,任何时候您想要向本地化的用户显示DateTime,您都可以使用TimeZoneInfo.ConvertTime之类的东西来执行转换。理想情况下,这应该在尽可能接近UI的地方完成,这样支持逻辑总是在UTC中一致地执行。