【发布时间】:2011-08-14 06:04:30
【问题描述】:
我有一种方法可以根据用户输入创建 UTC DateTime,使用他们地理位置的 GMT 偏移量:
public static DateTime LocalToUtc
(int year, int month, int day, int hour, decimal gmtOffset) {
// argument validation here
var dateTime = new DateTime(year, month, day).AddHours(hour);
var dateTimeOffset =
new DateTimeOffset(dateTime, TimeSpan.FromHours(gmtOffset));
return dateTimeOffset.UtcDateTime;
}
问题是,如果用户所在时区是夏令时,此功能会关闭一个小时。
因此,虽然我个人的 GMT 偏移量是 -8,但由于夏令时,当前时区偏移量是 -7。
如何更改上述函数以考虑夏令时?难道我不需要从 GMT 偏移量创建一些时区对象并获取它的时区偏移量吗?
【问题讨论】:
标签: c# .net datetime localization