首页 > 解决方案 > 如何从给定时区获取特定日期的 UTC 偏移量

问题描述

这是一个具体的例子。

日期:1963 年 8 月 8 日上午 5:37 时区:美国/芝加哥

在这个给定的日期和时区,UTC 偏移量为 -6。但我从 NodaTime 得到-5。

我尝试了多种使用 NodaTime 计算 UTC 偏移量的方法,但它们都返回 -5。下面只是我尝试过的一件这样的事情。

var zone = DateTimeZoneProviders.Tzdb[timeZone];
var localDateTime = LocalDateTime.FromDateTime(localEventDateTime);

ZoneLocalMappingResolvr customResolver = Resolvers.CreateMappingsolver(Resolvers.ReturnLater, Resolvers.ReturnStartOfIntervalAfter);
var zonedDateTime = zone.ResolveLocal(localDateTime, customResolver);
var result = zonedDateTime.ToDateTimeUtc();

我可以使用什么代码来实现这一点?

标签: c#nodatime

解决方案


推荐阅读