Работает ли ToLocalTime между часовыми поясами? - PullRequest
2 голосов
/ 17 сентября 2010

В документации говорится, что ...

  • Вы можете использовать метод ToLocalTime для восстановления локального значения даты и времени, которое было преобразовано в UTC методом ToUniversalTime или FromFileTimeUtc,

и продолжает (немедленно)

  • Однако, если исходное время представляет собой недопустимое время в местном часовом поясе, оно не будет соответствовать восстановленному значению.

Означает ли последний, что он не будет работать, только если время «неверно» (что бы это ни значило?)?

1 Ответ

1 голос
/ 17 сентября 2010

Я думаю, что это показывает, что для времен значит быть недействительным:

DateTime now = DateTime.Now;
for (DateTime dt = now; dt < now.AddYears(1); dt += TimeSpan.FromMinutes(30))
{
    DateTime dt2 = dt.ToUniversalTime().ToLocalTime(); // dt2 == dt ?
    if (dt2 != dt)
    {
        Console.WriteLine("Not equal: {0}, {1}", dt, dt2);
    }
}

Результат на моем компьютере (вы можете получить другие результаты):

Not equal: 27-03-2011 02:26:28, 27-03-2011 03:26:28
Not equal: 27-03-2011 02:56:28, 27-03-2011 03:56:28

Время "27-03-2011 02:26:28" недопустимо, поскольку они не существуют из-за того, что часы на час вперед, что приводит к пропуску этого времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...