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

时间:2015-08-31 16:00:10

标签: c# utc timezone-offset

后端是C#和SQL Server。

我在数据库中以UTC格式保存不同时区的日志记录活动日期时间。我需要填充全局分布的前端,以便根据前端所在的位置来定位记录的UTC时间,这将是已知的,例如, PT,ET。它还需要处理夏令时,这是我遇到困难的时候。

由于夏令时,UTC偏移量会根据一年中的时间而变化,因此我可以通过一种方式找出C#中的UTC偏移量,因为我知道日期/时间和时区。

1 个答案:

答案 0 :(得分:2)

  

我有办法找出C#中的UTC偏移量,因为我知道日期/时间和时区

从技术上讲,你不应该需要来找出这些信息,基础系统时钟/日历/你有什么应该照顾它。 (我确信has worked on date-time logic任何人都会证明至少可以说非平凡这一事实。)

理想情况下,只要您需要转换时区,就有三件事:

  1. 表示要转换的值的DateTime对象。
  2. 一个TimeZoneInfo对象,表示DateTime对象的已知当前格式(在本例中为UTC)。
  3. 表示目标时区的TimeZoneInfo对象。
  4. 鉴于这些事情,只要您希望向本地化用户显示DateTime,就可以使用something like TimeZoneInfo.ConvertTime来执行转换。理想情况下,这应尽可能靠近UI,以便始终以UTC格式执行后备逻辑。