2013-01-02 20 views
28

In der PHP-Dokumentation, list of supported time zones wird UTC zweimal aufgeführt:Gibt es einen Unterschied zwischen den Zeitzonen UTC und Etc/UTC?

  • UTC
  • Etc/UTC

Gibt es einen begrifflichen Unterschied zwischen diesen beiden, oder sind sie nur Synonyme?

+1

Von der Seite: "Bitte verwenden Sie keine der hier aufgeführten Zeitzonen (außer UTC), sie existieren nur aus rückwärtskompatiblen Gründen." - Ich frage mich, ob das auch "Etc/UTC" betrifft? –

+0

Wahrscheinlich: Nach [Chrisbulmers Antwort] (http://Stackoverflow.com/a/14128617/759866) würde ich vermuten, dass es nicht Standard ist! – Benjamin

Antwort

21

Etc/UTC wird für die Zeitzone angegeben, deren Anzeigename UTC lautet. Das heißt, sie sind lange und kurze Namen für die gleiche Zeitzone, per IANA's time zone database.

+0

Das ist nicht, wie ich dieses Dokument verstehe: "Zum Beispiel verwendet TZ = 'Etc/GMT + 4' die Abkürzung" GMT + 4 "und entspricht 4 Stunden hinter UTC (dh westlich von Greenwich), obwohl viele Menschen würden erwarte es bis bedeutet 4 Stunden vor UTC (dh östlich von Greenwich). " Es geht also umgekehrt, und wenn UTC das auch nicht tut, sind sie wirklich Gegensätze! – Benjamin

+0

@Benjamin: Wir sprechen über die UTC-Zeitzone, die einen Offset von Null hat. Positive Null und negative Null sind die gleiche Zahl und es gibt sowieso keinen Offset. –

+0

Ich verstehe das, aber meine Frage gilt gleichermaßen für "Etc/GMT + 1" usw. Ich bin überrascht, dass nur "Etc" Versionen vorgeschlagen werden, wo ich dachte, dass der allgemeine Konsens war, GMT + 1 zu verwenden, und nicht die "umgekehrten" Versionen! – Benjamin

0

ETC/GMT + 4 ist das gleiche wie 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); 

} 

Sie können es selbst testen.

Aber ich weiß nicht, was ETC bedeuten ..

17

Zum einen die Frage zu beantworten:
Es gibt keinen Unterschied zwischen UTC und Etc/UTC Zeitzonen.

Etc/UTC ist eine Zeitzone in der Olson-Zeitzone-Datenbank (tz database), auch als IANA-timezones-database bekannt, bei dem alle Zeitzonen zu einer einheitlichen Namenskonvention entsprechen: Area/Location.

Da einige Zeitzonen keinem Bereich der Welt (d. H. Kontinente oder Ozeane) zugeordnet werden können, wurde der spezielle Bereich Etc (Etcetera) eingeführt. Dies gilt hauptsächlich für administrative Zeitzonen wie UTC.
Um der Namenskonvention zu entsprechen, heißt die universelle koordinierte Zeit (Zone) Etc/UTC in der tz-Datenbank.

Für administrative Zeitzonen außer UTC (z. B. GMT+4, GMT-8) verwendet die tz-Datenbank POSIX-style signs in den Zonennamen. POSIX hat positive Zeichen für Zonen hinter Greenwich (westlich von Greenwich) und negative Zeichen für Zonen, die vor Greenwich (östlich von Greenwich) liegen.

POSIX-Zeichen in Zeitzonen sind das Gegenteil der Definition von Zeitzonen in der heutzutage weit verbreiteten und am häufigsten verwendeten ISO 8601. Im Zeitzonenformat ISO 8601 zeigen negative Vorzeichen an, dass eine Zone hinter UTC (westlich von Greenwich) liegt, und positive Vorzeichen zeigen an, dass eine Zone vor UTC (östlich von Greenwich) liegt. Dies ist heutzutage Standard.

Mögliche Gründe für die entgegengesetzte Definition in POSIX sind:

  • POSIX Teil von UNIX ist, die in den USA entwickelt wurde, die hinter UTC (westlich von Greenwich) ist. Das POSIX-Format ermöglicht, dass die US-Zeitzonen als EST5, PST8 dargestellt werden, d. H. Das (+) -Zeichen wegzulassen.
  • In der Regel tun Computerprogramme und Betriebssysteme intern alles in UTC-Zeit. Mit POSIX-Zeichen können Sie Zeit und Zeitzone hinzufügen, um UTC-Zeit zu erhalten. Beispiel: "03:30 PST8" oder "03:30 GMT + 8" bedeutet "11:30 UTC".
+0

"Etc" ist die Abkürzung für "Etcetera", die in diesem Fall eine Gruppierung für Zeitzonen darstellt, die nicht in eine andere Gruppe passen, die als "der Rest" bezeichnet wird. –

+0

@chinoto: Was versuchst du mir zu sagen? Genau das erkläre ich unter anderem in meiner Antwort. Hast du meine Antwort vor dem Kommentieren gelesen? –

+1

Ich bin nicht sicher, warum ich diesen Kommentar gemacht hätte ... Ich erinnere mich daran, es gemacht zu haben, aber nirgendwo auf dieser Seite war irgendjemand nicht sicher, was "Etc" bedeutete, ziemlich merkwürdig. –

Verwandte Themen