后端是C#和SQL Server。
我在数据库中以UTC格式保存不同时区的日志记录活动日期时间。我需要填充全局分布的前端,以便根据前端所在的位置来定位记录的UTC时间,这将是已知的,例如, PT,ET。它还需要处理夏令时,这是我遇到困难的时候。
由于夏令时,UTC偏移量会根据一年中的时间而变化,因此我可以通过一种方式找出C#中的UTC偏移量,因为我知道日期/时间和时区。
答案 0 :(得分:2)
我有办法找出C#中的UTC偏移量,因为我知道日期/时间和时区
从技术上讲,你不应该需要来找出这些信息,基础系统时钟/日历/你有什么应该照顾它。 (我确信has worked on date-time logic任何人都会证明至少可以说非平凡这一事实。)
理想情况下,只要您需要转换时区,就有三件事:
DateTime
对象。TimeZoneInfo
对象,表示DateTime
对象的已知当前格式(在本例中为UTC)。TimeZoneInfo
对象。鉴于这些事情,只要您希望向本地化用户显示DateTime
,就可以使用something like TimeZoneInfo.ConvertTime
来执行转换。理想情况下,这应尽可能靠近UI,以便始终以UTC格式执行后备逻辑。