2013-01-02 23 views
28

W dokumentacji PHP, list of supported time zones, UTC jest wymieniony dwukrotnie:Czy istnieje różnica między strefami czasowymi UTC i Etc/UTC?

  • UTC
  • Etc/UTC

Czy jest jakaś różnica koncepcyjna pomiędzy tymi dwoma, lub są po prostu synonimami?

+1

Ze strony: "Proszę nie używać żadnej z wymienionych stref czasowych (oprócz UTC), istnieją one tylko z powodów zgodnych z wcześniejszymi wersjami." - Zastanawiam się, czy to również obejmuje "Etc/UTC"? –

+0

Prawdopodobnie: Po [odpowiedź chrisbulmer] (http://stackoverflow.com/a/14128617/759866), podejrzewam, że to nie jest standard! – Benjamin

Odpowiedz

21

Etc/UTC jest określona dla strefy czasowej, której wyświetlana nazwa to UTC. Oznacza to, że są to długie i krótkie nazwy dla tej samej strefy czasowej, za IANA's time zone database.

+0

Nie rozumiem tego dokumentu: "Na przykład TZ =" Etc/GMT + 4 "używa skrótu" GMT + 4 "i odpowiada 4 godzinom za UTC (tj. Na zachód od Greenwich), chociaż wiele osób Oczekujcie, że będzie to 4 godziny przed UTC (tj. na wschód od Greenwich). " Tak więc dzieje się to w odwrotnym kierunku i jeśli UTC tego nie robi, to są one naprawdę przeciwieństwem! – Benjamin

+0

@Benjamin: Mówimy o strefie czasowej UTC, która ma offset zerowy. Dodatnie zero i ujemne zero są tej samej liczby i tak czy inaczej nie ma przesunięcia. –

+0

Rozumiem to, ale moje pytanie dotyczy zarówno "Etc/GMT + 1" itd. Jestem zaskoczony, że proponowane są tylko wersje "Etc", gdzie uważałem, że ogólny konsensus dotyczy używania GMT + 1, a nie wersje "odwrotne"! – Benjamin

0

ETC/GMT + 4 to to samo co GMT-4.

public static void main(String[] args) { 
    TimeZone tz = TimeZone.getTimeZone("Etc/GMT-7"); 
    System.out.println(tz); 

    tz = TimeZone.getTimeZone("GMT+7"); 
    System.out.println(tz); 

} 

Możesz to przetestować samodzielnie.

Ale ja nie wiem, co znaczy ETC ..

17

Po pierwsze, aby odpowiedzieć na pytanie:
nie ma różnicy między UTC i Etc/UTC strefach czasowych.

Etc/UTC jest strefa czasowa w Olson-czasowej bazie danych (tz database), znany również jako IANA-timezones-database, w którym wszystkie okna czasowe zgodne z jednolitą konwencją nazewnictwa: Area/Location.

Ponieważ niektóre strefy czasowe nie mogą być przypisane do żadnego obszaru na świecie (tj. Kontynenty lub oceany), wprowadzono specjalny obszar Etc (Etcetera). Dotyczy to głównie stref czasowych administracyjnych, takich jak UTC.
W związku z tym, aby zachować zgodność z konwencją nazewnictwa, uniwersalny skoordynowany czas (strefa) ma nazwę Etc/UTC w bazie danych tz.

Dla stref czasowych administracyjnych innych niż UTC (na przykład GMT+4, GMT-8), baza danych tz używa POSIX-style signs w nazwach stref. POSIX ma pozytywne znaki dla stref, które są za Greenwich (na zachód od Greenwich) i negatywne znaki dla stref, które są przed Greenwich (na wschód od Greenwich).

Znaki w stylu POSIX w strefach czasowych są przeciwieństwem definicji stref czasowych w obecnie szeroko rozpowszechnionych i najczęściej używanych ISO 8601. W formacie strefy czasowej ISO 8601 negatywne znaki wskazują, że strefa znajduje się za UTC (na zachód od Greenwich), a pozytywne znaki wskazują, że strefa wyprzedza UTC (na wschód od Greenwich). Właśnie to stało się obecnie standardowym użytkowaniem.

Możliwe przyczyny przeciwnej definicją POSIX są:

  • POSIX jest częścią UNIX, który został opracowany w Stanach Zjednoczonych, co jest za UTC (na zachód od Greenwich). Format POSIX pozwala, aby strefy czasowe US ​​były reprezentowane jako EST5, PST8, tj. Z pominięciem znaku (+).
  • Zazwyczaj programy komputerowe i systemy operacyjne wewnętrznie wykonują wszystkie czynności w czasie UTC. Dzięki znakom w stylu POSIX możesz dodać czas i strefę czasową, aby uzyskać czas UTC. Przykład: "03:30 PST8" lub "03:30 GMT + 8" oznacza, że ​​jest "11:30 UTC".
+0

"Etc" to skrót nazwy "Etcetera", która w tym przypadku jest grupą dla stref czasowych, które nie pasują do żadnej innej grupy, zwanej "resztą". –

+0

@chinoto: Co próbujesz mi powiedzieć? Dokładnie to wyjaśniam w mojej odpowiedzi (między innymi). Czy przeczytałeś moją odpowiedź przed komentarzem? –

+1

Nie jestem pewien, dlaczego zrobiłbym ten komentarz ... Pamiętam, że udało mi się, ale nigdzie na tej stronie nikt nie był pewien, co "Etc" znaczyło, całkiem dziwne. –

Powiązane problemy