У меня есть метод, который создает 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;
}
Проблема в том, что эта функция отключена на час, если это дневной светэкономия в часовом поясе пользователя.
Таким образом, хотя мое личное смещение по Гринвичу равно -8, текущее смещение часового пояса равно -7 из-за перехода на летнее время.
Как изменить указанную выше функцию для учетадневного сбережения?Разве мне не нужно как-то создавать объект часового пояса из смещения по Гринвичу и получать его смещение по часовому поясу?