Я пытаюсь преобразовать DateTime в CST в EST с поправкой на летнее время. Моя локальная машина находится на EST. Нашел это на msdn, но пользователь < href="https://stackoverflow.com/questions/18134202/how-to-convert-est-to-other-times-zonespst-cst-mst-considering-daylight-saving">fokasu рекомендуется использовать DateTimeOffset для настройки на летнее время, но я не знаю, как включить это в свой код. спасибо за любую помощь. это то, что у меня есть до сих пор, которое работает, но я не думаю, что оно настраивается на летнее время.
DateTime cstTime, utcTime;
DateTime estTime;
string cstZoneId, estZoneId;
TimeZoneInfo cstZone, estZone;
estZoneId = "Eastern Standard Time";
cstZoneId = "Central Standard Time";
estZone = TimeZoneInfo.FindSystemTimeZoneById(estZoneId);
cstZone = TimeZoneInfo.FindSystemTimeZoneById(cstZoneId);
//define d as CST
cstTime = d;
try
{
//convert CST to UTC
utcTime = TimeZoneInfo.ConvertTimeToUtc(cstTime, cstZone);
//convert UTC to EST
estTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, estZone);
return estTime;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
TimeZoneInfo
фреймворка, я вижу, что он сбивает с толку наличие одного объекта с именем Eastern Standard Time, свойствоSupportsDaylightSavingTime
которого истинно. Если вы пропустите восточное летнее время, вы получите исключение. Это несовместимо с надлежащей терминологией гражданского времени, но отражает широко распространенное заблуждение, которое пытается исправить запись в блоге Эрика Липперта. - person phoog   schedule 02.04.2015ConvertTimeToUtc
на самом деле вел себя по-разному в зависимости от того, было ли время, которое я проезжал летом или зимой. Пожалуйста, отредактируйте свой вопрос, включив в него рабочий пример, иллюстрирующий вашу проблему, а также результат, который вы ожидаете, и фактический результат. - person phoog   schedule 02.04.2015