web-dev-qa-db-ja.com

UTCとEtc / UTCのタイムゾーンに違いはありますか?

PHPドキュメント、 サポートされているタイムゾーンのリストUTCは2回リストされています:

  • UTC
  • Etc/UTC

これら2つの間に概念的な違いはありますか、それとも単に同義語ですか?

46
Benjamin

Etc/UTCは、表示名がUTCのタイムゾーンに指定されます。つまり、それらは IANAのタイムゾーンデータベース に従って、同じタイムゾーンのロングネームとショートネームです。

30
David Schwartz

まず、質問に答えるために:
UTCEtc/UTCのタイムゾーンに違いはありません。

Etc/UTCはOlson-timezone-database( tz database )のタイムゾーンで、 IANA-timezones-database とも呼ばれ、すべてのタイムゾーンが統一された命名規則:Area/Location

一部のタイムゾーンは世界のどの地域(つまり、大陸または海洋)にも帰属できないため、特別なArea EtcEtcetera )が導入されました。これは主にUTCなどの管理タイムゾーンに適用されます。
したがって、命名規則に準拠するために、tzデータベースでは、協定世界時(ゾーン)の名前はEtc/UTCになります。

UTC以外の管理タイムゾーン(例:GMT+4GMT-8)の場合、tzデータベースはゾーン名で POSIXスタイルの記号 を使用します。 POSIXには、グリニッジの背後にあるゾーン(グリニッジの西)に正の兆候があり、グリニッジの前方にあるゾーン(グリニッジの東)に負の兆候があります。

タイムゾーンでのPOSIXスタイルの記号は、現在広く普及し、主に使用されている ISO 8601 のタイムゾーンの定義の反対です。 ISO 8601タイムゾーン形式では、負の符号はゾーンがUTC(グリニッジの西)より遅いことを示し、正の符号はゾーンがUTCより早い(グリニッジの東)ことを示します。これが最近の標準的な使用法になっています。

POSIXの反対の定義の考えられる理由は次のとおりです。

  • POSIXは、UTC(グリニッジの西)の背後にある米国で開発されたUNIXの一部です。 POSIX形式では、米国のタイムゾーンをEST5、PST8として表すことができます。つまり、(+)記号を省略します。
  • 通常、コンピュータープログラムとオペレーティングシステムは内部的にすべてをUTC時間で実行します。 POSIXスタイルの標識を使用すると、UTC時間を取得するために時間とタイムゾーンを追加できます。例:「03:30 PST8」または「03:30 GMT + 8」は、「11:30 UTC」であることを意味します。
32

ETC/GMT + 4は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);

}

自分でテストできます。

しかし、ETCの意味がわかりません。

0
arganzheng