github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/time/zoneinfo.go (about)

     1  // Copyright 2011 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package time
     6  
     7  // Locationは、時間の瞬間をその時点で使用されているタイムゾーンにマップします。
     8  // 通常、Locationは、地理的な地域で使用される時間オフセットのコレクションを表します。
     9  // 多くのLocationでは、時間オフセットは、その時点で夏時間が使用されているかどうかによって異なります。
    10  //
    11  // Locationは、印刷されたTime値でタイムゾーンを提供し、夏時間の境界をまたぐ可能性のある間隔に関する計算に使用されます。
    12  type Location struct {
    13  	name string
    14  	zone []zone
    15  	tx   []zoneTrans
    16  
    17  	// tzdata情報の後に、zoneTransに記録されていないDSTの移行をどのように処理するかを説明する文字列が続く場合があります。
    18  	// フォーマットは、コロンを含まないTZ環境変数です。詳細は、以下を参照してください。
    19  	// https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html。
    20  	// 例として、America/Los_Angelesの場合は、PST8PDT,M3.2.0,M11.1.0となります。
    21  	extend string
    22  
    23  	// ほとんどの検索は現在の時刻で行われます。
    24  	// txをバイナリサーチしないように、
    25  	// Locationが作成された時点の正しいタイムゾーンを
    26  	// 提供する静的な単一要素キャッシュを保持します。
    27  	// もし cacheStart <= t < cacheEnd であれば、
    28  	// キャッシュは cacheZone を返すことができます。
    29  	// cacheStart と cacheEnd の単位は、
    30  	// lookupへの引数と一致するように、
    31  	// 1970年1月1日UTCからの秒数です。
    32  	cacheStart int64
    33  	cacheEnd   int64
    34  	cacheZone  *zone
    35  }
    36  
    37  // UTCは協定世界時(UTC)を表します。
    38  var UTC *Location = &utcLoc
    39  
    40  // Local はシステムのローカルなタイムゾーンを表します。
    41  // Unix システムでは、Local は TZ 環境変数を参照して使用するタイムゾーンを見つけます。TZ が指定されていない場合は、システムのデフォルトの /etc/localtime を使用します。
    42  // TZ="" は UTC を使用します。
    43  // TZ="foo" はシステムのタイムゾーンディレクトリ内のファイル foo を使用します。
    44  var Local *Location = &localLoc
    45  
    46  // Stringは、LoadLocationまたはFixedZoneのname引数に対応する、タイムゾーン情報の記述的な名前を返します。
    47  func (l *Location) String() string
    48  
    49  // FixedZoneは、常に指定されたタイムゾーン名とオフセット(UTCからの秒数)を使用するLocationを返します。
    50  func FixedZone(name string, offset int) *Location
    51  
    52  // LoadLocationは指定された名前を持つLocationを返します。
    53  //
    54  // 名前が""または"UTC"の場合、LoadLocationはUTCを返します。
    55  // 名前が"Local"の場合、LoadLocationはLocalを返します。
    56  //
    57  // それ以外の場合、名前はファイルに対応する場所の名前であり、
    58  // IANAタイムゾーンデータベースの中に存在します。例えば"America/New_York"です。
    59  //
    60  // LoadLocationは以下の順序でIANAタイムゾーンデータベースを探します:
    61  //
    62  //   - ZONEINFO環境変数によって指定されたディレクトリまたは解凍されたzipファイル
    63  //   - Unixシステムでは、システムの標準インストール場所
    64  //   - $GOROOT/lib/time/zoneinfo.zip
    65  //   - インポートされていた場合、time/tzdataパッケージ
    66  func LoadLocation(name string) (*Location, error)