Tworzymy aplikację C # dla klienta usługi sieciowej. Będzie działać na komputerach z systemem Windows XP.
Jednym z pól zwracanych przez usługę internetową jest pole DateTime. Serwer zwraca pole w formacie GMT, tj. Z „Z” na końcu.
Odkryliśmy jednak, że .NET wydaje się dokonywać jakiejś niejawnej konwersji, a czas zawsze wynosił 12 godzin.
Poniższy przykładowy kod rozwiązuje to w pewnym stopniu, ponieważ minęła 12 godzinna różnica, ale nie uwzględnia ona czasu letniego w NZ.
CultureInfo ci = new CultureInfo("en-NZ");
string date = "Web service date".ToString("R", ci);
DateTime convertedDate = DateTime.Parse(date);
Zgodnie z tą datą strona :
Przesunięcie UTC / GMT
Standardowa strefa czasowa: UTC / GMT +12 godzin
Czas letni: +1 godzina
Bieżące przesunięcie strefy czasowej: UTC / GMT +13 godzin
Jak dostosowujemy się do dodatkowej godziny? Czy można to zrobić programowo, czy jest to jakieś ustawienie na komputerze?
Z
czas odnosi się do UTC, a nie GMT. Oba mogą się różnić o maksymalnie 0,9 sekundy.