首页 > 解决方案 > 更改 DateTimeOffset 中的偏移量

问题描述

我正在使用 Google TimeZone API 根据地址为我提供 UTC 偏移量。例如,对于城市 Lima,它返回 -18000 秒。

如何在 DateTimeOffset 中使用此信息并让它仅更改它的 Offset 属性,以秒为单位计算差异,以便它显示当前时间,但 Offset 在哪里像这样变化?

日期时间 = {12-01-2020 21:15:33} => 日期时间偏移 = {12-01-2020 21:15:33 -05:00 }

对于巴黎,它应该在 Offset 属性中为 +01:00。

标签: c#datetimedatetimeoffset

解决方案


我想我已经想通了。这似乎有效:

DateTimeOffset now = DateTimeOffset.UtcNow; //{13-01-2020 07:39:04 +00:00}
TimeSpan timeSpanInterval = TimeSpan.FromSeconds(googleTimeZone.dstOffset + googleTimeZone.rawOffset); // {-05:00:00}
dateTimeOffset = now.ToOffset(timeSpanInterval); // {13-01-2020 02:39:04 -05:00}

也许它可以用另一种方式完成,但这似乎按照我想要的方式设置了 Offset 属性。


推荐阅读