В приложении я сохраняю все даты в базе данных как UTC.Как конвертировать WET/WEST Время в UTC?
Однако пользователи вставки даты в Лиссабонском часовом поясе ...
Я проверил и Лиссабон часовой пояс WEST летом и WET остальную часть года.
WET = Western European Time
WEST = Western European Summer Time
Затем я попробовал следующее:
DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;
DateTime.SpecifyKind(now, DateTimeKind.Local);
DateTime testNowUtc = now.ToUniversalTime();
Но testNowUtc становится такой же, как и сейчас, а не как nowUtc
Как я могу решить эту проблему?
** UPDATE **
Я попытался следующие:
DateTime now = DateTime.Now;
DateTime nowUtc = DateTime.UtcNow;
String zone = TimeZoneInfo.Local.IsDaylightSavingTime(now) ? TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName;
DateTime testNowUtc = TimeZoneInfo.ConvertTimeToUtc(now, TimeZoneInfo.FindSystemTimeZoneById(zone));
Но когда я запускаю его я получаю сообщение об ошибке:
The time zone ID 'GMT Daylight Time' was not found on the local computer.
я упускаю что-то?
http://stackoverflow.com/questions/7908343/list-of-timezone-ids-for-use-with-findtimezonebyid-in-c http://msdn.microsoft.com/en-us/library/ system.timezoneinfo.findsystemtimezonebyid (v = vs.110) .aspx http://msdn.microsoft.com/en-us/library/system.timezoneinfo.converttimetoutc(v=vs.110).aspx – Aron
Я добавил обновление с код, основанный на ваших предложениях, но я получаю сообщение об ошибке: «Идентификатор часового пояса« GMT Daylight Time »не найден на локальном компьютере». –
Название часового пояса - GMT GMT. Независимо от того, действует ли дневная экономия, зависит только от даты. Сокращения, такие как «WET», являются произвольными и двусмысленными, много «CST» вокруг. –