2013-01-02 13 views
28

Nella documentazione di PHP, list of supported time zones, UTC è elencato due volte:C'è una differenza tra i fusi orari UTC ed Etc/UTC?

  • UTC
  • Etc/UTC

C'è qualche differenza concettuale tra quei due, o sono solo sinonimi?

+1

Dalla pagina: "Si prega di non utilizzare nessuno dei fusi orari elencati qui (oltre a UTC), esistono solo per motivi compatibili con le versioni precedenti." - Mi chiedo se copre anche 'Etc/UTC'? –

+0

Probabilmente: seguendo [risposta di chrisbulmer] (http://stackoverflow.com/a/14128617/759866), sospetto che non sia standard! – Benjamin

risposta

21

Etc/UTC è il valore specificato per il fuso orario il cui nome visualizzato è UTC. Cioè, sono nomi lunghi e corti per lo stesso fuso orario, per IANA's time zone database.

+0

Questo non è il modo in cui ho capito questo documento: "Ad esempio, TZ = 'Etc/GMT + 4' utilizza l'abbreviazione" GMT + 4 "e corrisponde a 4 ore dietro UTC (ovvero a ovest di Greenwich) anche se molte persone aspettarsi che a significhi 4 ore prima dell'UTC (cioè a est di Greenwich). " Quindi va alla rovescia, e a meno che UTC faccia altrettanto, sono davvero degli opposti! – Benjamin

+0

@ Benjamin: stiamo parlando del fuso orario UTC che ha un offset pari a zero. Lo zero positivo e lo zero negativo sono lo stesso numero e non c'è comunque compensazione. –

+0

Lo capisco, ma la mia domanda si applica ugualmente a 'Etc/GMT + 1' ecc. Sono sorpreso che vengano proposte solo versioni di' Etc', dove pensavo che il consenso generale fosse usare GMT + 1, e non le versioni "reverse"! – Benjamin

0

ETC/GMT + 4 è lo stesso di 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); 

} 

È possibile testarlo da soli.

Ma io non so cosa dire .. ETC

17

In primo luogo, per rispondere alla domanda:
Non c'è differenza tra il UTC e Etc/UTC fusi orari.

Etc/UTC è un fuso orario nella Olson-fuso orario-database (tz database), noto anche come IANA-timezones-database, in cui tutti i fusi orari conformi ad una convenzione di denominazione uniforme: Area/Location.

Poiché alcuni fusi orari non possono essere attribuiti a nessuna zona del mondo (cioè continenti o oceani), è stata introdotta l'area speciale Etc (Etcetera). Ciò si applica principalmente ai fusi orari amministrativi come UTC.
Pertanto, per conformarsi alla convenzione di denominazione, il fuso orario universale (zona) è denominato Etc/UTC nel database tz.

Per i fusi orari amministrativi diversi da UTC (ad esempio GMT+4, GMT-8), il database tz utilizza POSIX-style signs nei nomi di zona. POSIX ha segnali positivi per le zone che si trovano dietro a Greenwich (a ovest di Greenwich) e segnali negativi per le zone che precedono Greenwich (a est di Greenwich).

I segni di tipo POSIX in fusi orari sono l'opposto della definizione di fusi orari nell'odierno diffuso e maggiormente utilizzato ISO 8601. Nel formato di fuso orario ISO 8601, i segni negativi indicano che una zona è dietro l'UTC (a ovest di Greenwich) e i segnali positivi indicano che una zona è in anticipo rispetto all'UTC (a est di Greenwich). Questo è ciò che è diventato l'uso standard al giorno d'oggi.

motivi possibili per la definizione opposto in POSIX sono:

  • POSIX fa parte di UNIX, che è stato sviluppato negli Stati Uniti, che si trova dietro UTC (ad ovest di Greenwich). Il formato POSIX consente di rappresentare i fusi orari degli Stati Uniti come EST5, PST8, ad esempio omettendo il segno (+).
  • In genere, i programmi per computer e i sistemi operativi eseguono tutto internamente all'ora UTC. Con i segni in stile POSIX è possibile aggiungere ora e fuso orario per ottenere l'ora UTC. Esempio: "03:30 PST8" o "03:30 GMT + 8" significa che è "11:30 UTC".
+0

"Etc" è l'abbreviazione di "Etcetera", che in questo caso è un raggruppamento per fusi orari che non rientrano in nessun altro gruppo noto come "resto". –

+0

@chinoto: cosa stai cercando di dirmi? Questo è esattamente ciò che spiego nella mia risposta (tra le altre cose). Hai letto la mia risposta prima di commentare? –

+1

Non sono sicuro del motivo per cui avrei fatto quel commento ... Ricordo di averlo fatto, ma da nessuna parte in questa pagina qualcuno non era sicuro di cosa significasse "Etc", piuttosto strano. –