Мы разрабатываем приложение на C # для клиента веб-сервиса. Это будет работать на ПК с Windows XP.
Одним из полей, возвращаемых веб-службой, является поле DateTime. Сервер возвращает поле в формате GMT, то есть с буквой «Z» в конце.
Тем не менее, мы обнаружили, что .NET, похоже, выполняет какое-то неявное преобразование, и время всегда было 12 часов.
Следующий пример кода разрешает это до некоторой степени, поскольку разница в 12 часов исчезла, но не учитывает переход на летнее время в Новой Зеландии.
CultureInfo ci = new CultureInfo("en-NZ");
string date = "Web service date".ToString("R", ci);
DateTime convertedDate = DateTime.Parse(date);
Согласно этой дате сайт :
Смещение UTC / GMT
Стандартный часовой пояс: UTC / GMT +12 часов
Летнее время: +1 час
Текущее смещение часового пояса: UTC / GMT +13 часов
Как нам отрегулировать дополнительный час? Это можно сделать программно или это какая-то настройка на ПК?
Z
время относится к UTC, а не по Гринвичу. Два могут отличаться на 0,9 секунды.