Я пытаюсь понять, почему моя дата неправильно:UTC преобразуется в Центральной Европе поясному времени 2 часа перед не 1
DateTime databaseUtcTime = new DateTime(2016, 8, 15, 10, 20, 0, DateTimeKind.Utc);
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
var testDateTime = TimeZoneInfo.ConvertTimeFromUtc(databaseUtcTime, timeZone);
testDateTime
выходы 15/08/2016 12:20:00, а не 15/08/2016 11:20:00 Почему это? Не должно быть 1 часа вперед от UTC, а не 2?
EDIT ----
Спасибо Джон Скит,
Если это помогает любому, я прибегал к использованию:
if(testDateTime.IsDaylightSavingTime())
{
testDateTime = testDateTime.AddHours(-1);
}
Albeit не зная контекста, это может быть полезно знать, как избавиться от летнего времени при выполнении определенных явных тестов вовремя.
Пришло время, чтобы превратиться в NodaTime. (Это хорошая фраза): https://github.com/nodatime/nodatime – user3185569