【发布时间】:2020-12-28 06:58:17
【问题描述】:
假设source 是任意的DateTimeOffset,我想将变量dest(也是DateTimeOffset 类型)分配给纽约的同一时间点,并具有适当的偏移量。以下代码似乎可以做到这一点:
var utcSource = source.ToUniversalTime();
var destZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var destDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcSource.DateTime, destZone);
var destZoneOffset = destZone.GetUtcOffset(destDateTime);
var dest = new DateTimeOffset(destDateTime, destZoneOffset);
我的问题:有没有更简单的方法?对于一个非常常见的要求,这似乎是很多代码,特别是因为对于大多数用例,DateTimeOffset 优于 DateTime。 (我意识到如果我只使用DateTime,代码会更简单。)
【问题讨论】: