1

我有一个 DateTime dt,它有一个本地时刻的日期和时间,以及一个指定该日期时间的时区名称的字符串 tz。如何获得完全代表 DateTime 的 DateTimeOffset 结构?

我可以通过以下方式获取时区信息TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(csf.TimezoneName);

但我现在不确定如何从这两个元素中获取我想要的 DateTimeOffset

4

1 回答 1

2

您可以将特定区域中的本地时间转换为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));

请注意,如果输入时间由于夏令时不明确或无效,它将使用区域的标准偏移量。

于 2013-10-03T11:15:08.660 回答