我有一个 DateTime dt,它有一个本地时刻的日期和时间,以及一个指定该日期时间的时区名称的字符串 tz。如何获得完全代表 DateTime 的 DateTimeOffset 结构?
我可以通过以下方式获取时区信息TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(csf.TimezoneName);
但我现在不确定如何从这两个元素中获取我想要的 DateTimeOffset
您可以将特定区域中的本地时间转换为DateTimeOffset
这样的:
DateTime dt = new DateTime(2013, 1, 1, 0, 0, 0);
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTimeOffset dto = new DateTimeOffset(dt, tzi.GetUtcOffset(dt));
请注意,如果输入时间由于夏令时不明确或无效,它将使用区域的标准偏移量。