Tôi đang cố gắng sử dụng DateTimeOffset
để truyền tải một thời điểm cụ thể trong bất kỳ múi giờ nào. Tôi không thể tìm ra cách sử dụng TimeZoneInfo
để đối phó với thời gian tiết kiệm ánh sáng ban ngày.
var dt = DateTime.UtcNow;
Console.WriteLine(dt.ToLocalTime());
var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero);
Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset));
Điều này in ra:
6/2/2010 4:37:19 CH 6/2/2010 3:37:19 PM -06: 00
Tôi đang ở múi giờ trung tâm và chúng tôi hiện đang sử dụng thời gian tiết kiệm ánh sáng ban ngày. Tôi đang cố đọc dòng thứ hai:
6/2/2010 4:37:19 PM -05: 00
BaseUtcOffset
dường như không thay đổi dựa trên DST.
Làm thế nào tôi có thể nhận được đúng thời điểm với giá trị bù đắp thích hợp?