我的主题可能措辞很糟糕,但这就是我所拥有的。
我有一个 Web 服务,它在本地时间报告时间戳,如果服务器位于受影响的区域,时间戳会反映白天时间。Web 服务还有第二次调用以检索 UTC 中的服务器时间,因此太平洋夏令时 (PDT) 中的服务器将其 UTC 偏移报告为 -08:00,即使由于 PDT 而实际上是 -07:00。
这是我调用返回服务器时区信息的结果。
太平洋标准时间;-480;(UTC-08:00) 太平洋时间(美国和加拿大);太平洋标准时间;太平洋夏令时间;[01:01:0001;12:31:2006;60;[0;02: 00:00;4;1;0;];[0;02:00:00;10;5;0;];][01:01:2007;12:31:9999;60;[0;02: 00:00;3;2;0;];[0;02:00:00;11;1;0;];];
因此,如果从 Web 服务返回的时间戳是 2013 年 3 月 12 日上午 12:00 并且 UTC 偏移量是 -08:00,并且我住在亚利桑那州的一个夏令时豁免区域,我的 UTC 偏移量是 -07:00 怎么能我从返回的时间戳转换为我的本地时间?
这里的杀手锏是在时间戳中使用本地时间的 Web 服务。如果他们坚持通用格式,我的生活会很轻松。我目前的想法是,如果我可以在 TTimeZone 或等效结构中获取服务器的信息,那么我可以使用 TTimeZone.IsDaylightTime(Timestamp) 函数来知道我是否需要在使用 -08:00 服务器之前从时间戳中减去一个小时偏移量和 -07:00 本地偏移量以获得正确的本地时间。