Я использую класс TimeZoneInfo для преобразования значения Datetime в UTC. Однако преобразование не учитывает переход на летнее время автоматически. Как мне этого добиться.
Например, я пытаюсь преобразовать следующий DateTime в UTC:
//meetingDate is "10/04/2019 12:00:00" PM
var timeZoneId="AUS Eastern Standard Time";
DateTime dtUTC = TimeZoneInfo.ConvertTime(meetingDate, TimeZoneInfo.FindSystemTimeZoneById(timeZoneId), TimeZoneInfo.Utc);
Возвращаемое значение: 04.10.2009 02:00 UTC (am)
И это потому, что часовой пояс в моей оперативной системе для "AUS Eastern Standard Time" - UTC + 10:00 (см. Изображение ниже)
Но поскольку настройка «Автоматически переводить на летнее время» включена, я могу видеть правильное время на своих окнах 10 (что на самом деле в этот конкретный момент (1 апреля 2019 г.) UTC + 11)
Как я могу получить то же поведение, используя метод TimeZoneInfo.ConvertTime.
Что если я передам значение "10/04/2019 12:00:00 PM", я должен вернуться: 10/04/2019 01:00:00 UTC
P.S .: Я проверил следующий вопрос переполнения стека, но он конвертируется из UTC, поэтому он не относится к моему вопросу.
Как использовать TimeZoneInfo для получения местного времени в летнее время?
Изображение Windows 10 Часовой пояс:
![Image Windows 10 Timezone](https://i.stack.imgur.com/Wqg1W.png)