2015-06-19 7 views
-2

Я пытаюсь преобразовать мое местное время (г. Киев, Рига, UTC + 02: 00) в формате UTC, но есть ошибка в следующем методеDateTime часового пояса преобразования ошибка

TimeZoneInfo.ConvertTimeToUtc(clientDate, 
    TimeZoneInfo.FindSystemTimeZoneById(tTimeZone.SystemId)); 
  • clientDate является 19.06.2015 16:35:00
  • tTimeZone.SystemId является FLE Standard Time

в результате 19.06.2015 13:35:00, но, как я знаю, что результат должен быть 19.06.2015 14:35:00

Почему этот метод возвращает результат с разницей в 3 часа?

+2

Как насчет 'DST'? –

+0

У Европы и Украины есть те же правила DST, насколько я понимаю https://en.wikipedia.org/wiki/Daylight_saving_time – MyNameIsSkrillex

+0

Предполагая, что ваше 'DateTime' по местному времени, почему бы просто не вызвать' ToUniversalTime() '? – Lloyd

ответ

0

От this link;

!!! Примечание: В настоящее время наблюдается FLE Summer Time - .

И это говорит о том, что это UTC + 3 в настоящее время. Вот почему это слишком нормально, чтобы получить 3-часовые различия, когда вы их вычисляете.

Как говорит Ханс Passanst, когда вы пишете Google в качестве Local time in Kyiv или Local time in Riga, как результат поиска говорит (GMT + 3)

Похоже, DST начал в 29 марта 2015 и закончится 25 октября 2015.

+0

Спасибо, но почему свойство DateTime.UtcNow возвращает мне разницу в два часа (19.06.2015 14:35:00)? – MyNameIsSkrillex

+0

Какой часовой пояс используется вашим текущим компьютером? Вы когда-нибудь проверяли его на своих настройках? –

+0

Мое местоположение - Украина (по часовой стрелке) до GMT + 3, но DateTime.UtcNow возвращает мне мое местное время вычитания 2 часа – MyNameIsSkrillex

Смежные вопросы