タイム ドメインの基本
タイムドメインは、特定の条件または制限が適用される日付と時間間隔を指定する文字列値属性またはプロパティの仕様です。タイム ドメインは ISO 標準である GDF (地理データ ファイル) 仕様の一部です。現在の標準はISO 20524-1:2020のGDF 5.1です。
タイムドメインの基本概念
タイムドメインの構文
タイムドメインの概念と構文については、次のセクションで詳しく説明しますが、まずは簡単な例を紹介します。
- 基本的なタイム ドメインは開始時刻と期間の組み合わせであり、
(Starting Time) {Time Duration}のように表記されます。たとえば、(M5d1){d1}は次のような意味になります。- 開始時刻:
(M5d1)- 任意の年、月5 (5月)、1日目の午前0時00分 - 期間:
{d1}- 丸1日、つまり24時間または1440分
- 開始時刻:
これをまとめると次のようになります。「毎年5月1日、1日中」
開始時刻の構文
基本的なタイムドメイン表記(Starting Time) {Time Duration}では、Starting Timeは年、月、週、日、時間、分、/or秒の粒度で時刻を記述します。要素は最も長い時間単位 (年) から最も短い時間単位 (秒) に下がっていくように並べる必要があります。次の表に、すべての時間単位タイプとその表記、使用できる値を示します。
| タイプ | 表記 | 値ドメイン | 説明 |
|---|---|---|---|
| 年 | ynnnn | nnnn=0...9999 | nnnnは特定の年を定義します。例: (y1985)は1985年を意味します。正確には、これ以上の情報がない場合は、1985年1月1日午前0時00分00秒になります。省略された単位のデフォルト値の詳細については、以下の「デフォルト値の一般的なルール」を参照してください。 |
| 月 | Mnn | nn=1...12 | nnは特定の年の特定の月、または「y」情報が与えられていない場合はすべての年の特定の月を定義します。値の定義域1~12は1月~12月を意味します。例: (M5)は、毎年5月1日の午前0時00分を意味し、(y1985M5)は、1985年5月1日午前0時00分を意味します。 |
| 週 | wnn | nn=1..53 | nnは特定の年の特定の週 (週1から週53)、または「y」情報が与えられていない場合はすべての年の特定の週を定義します。例: (w5)は毎年5週目 (日曜日から始まる週) の日曜日の午前0時00分00秒を意味しますが、(y1985w5)は1985年の第5週の日曜日午前0時00分00秒になります。 |
| 日 | dnn | nn=1...28,29,30,31 | nnは特定の月の特定の日、または「M」情報が与えられない場合はすべての月の特定の日を定義します。例: (d10)はすべての月の10日の午前0時00分00秒を意味しますが、(y1985M5d10)は1985年5月10日の午前0時00分00秒になります。 |
| tn | n=1...7 | n は特定の週の特定の曜日、または「w」、「M」、「y」情報が与えられていない場合はすべての週の特定の曜日を定義します。値の定義域 1~7 は、1:日曜日、2:月曜日... 7:土曜日を意味します。例: (t2)は毎年の毎月の毎週の月曜日を意味しますが、(M5t2)は毎年5月 (5番目の月) の各月曜日を意味し、(w5t2)は毎年の第5週の月曜日を意味します。 | |
| fxn | x=1...5, n=1..7 | 特定の月の特定の曜日を定義します。ここで n は「tn」形式 (1:日曜日、...、7:土曜日) で使用され、xは「1:1番目」、「2:2番目」...「5:5番目」になります。例: (f12)は、毎年の毎月の最初の月曜日の午前0時00分00秒を意味しますが、(M5f12)は、毎年5月の第1月曜日の午前0時00分00秒になります。 | |
| lxn | x=1...5, n=1..7 | 特定の月の特定の曜日を定義します。ここで n は「tn」形式 (1:日曜日、...、7:土曜日) で使用され、x は「1:1 番目」、「2:2 番目」...「5:5 番目」になります。x の値は月末からの逆の順序で指定され、「1=最後」、「2=2番目から最後まで」、「3=3番目から最後まで」といった意味になります。例: (l12)は毎年の毎月の最終月曜日の午前0時00分00秒を意味しますが、(y1985l12)は1985年の毎月の最終月曜日の午前0時00分00秒になります。 | |
| 時間 | hnn | nn=0...23 | nnは特定の日の特定の時間、または「d」、「M」、「y」情報が与えられない場合はすべての日の特定の時間を定義します。例: (h6)は毎月の毎日の午前6時00分を意味しますが、(d10h6)は毎年の毎月10日の午前6時00分00秒になります。 |
| 分 | mnn | nn=0...59 | nnは特定の時間の特定の分、または「h」、「d」、「M」、「y」情報が与えられない場合はすべての時間の特定の分を定義します。例: (m24)は毎年の毎月の毎日の毎時24分を意味しますが、(d10h6m24)は毎年の毎月の10日の午前6時24分00秒になります。 |
| 秒 | snn | nn=1...59 | nnは特定の分の特定の秒、または「m」、「h」、「d」、「M」、「y」情報が与えられない場合はすべての分の特定の秒を定義します。例: (s15)は毎年の毎月の毎日の毎時間の毎分の15秒を意味しますが、(d10h6m24s15)は、毎年の毎月の10日の午前6時24分15秒になります。 |
開始時刻シーケンスで未定義の特定の時間単位のデフォルト値を見つけるには、欠落している時間タイプコードがfinalの1つかどうかを区別する必要があります。
Final 時間タイプ コード:
シーケンスの最後の時間タイプ コードが欠落している場合 (つまり、小さい時間範囲が欠落している場合)、デフォルト値は常に、可能な最小値 (M1、w1、d1、h0、m0、s0) になります。定義された年または月に「日」が指定されていない (つまり、「d」、「t」、「f」、「l」形式が使用されていない) 場合、デフォルトの時間コードとデフォルト値は d1 になります。
Other 時間タイプ コード:
シーケンスの先頭または定義された時間単位の間の時間タイプ コードが欠落している場合、欠落しているタイプに可能なすべての値の指定が有効になります。
開始時刻における未定義の時間単位のデフォルト値の例:
(y1994t1):1994年、任意の月/any週、毎週日曜日 (t1)、時刻00:00:00 a.m.(w9h11m30):任意の年の第9週、今週の任意の日、午前11:30、0秒(M4):任意の年の4月1日、午前0時0分0秒。(M4m33):任意の年の4月、4月の任意の日、任意の時間、33分0秒
図:開始時刻の有効な条件の組み合わせ。
期間の構文
Time Durationは時間間隔の単位を表す条件 (年、月、週、日、時間、分、秒) で定義されます。
単一の期間の指定は、特定の時間間隔単位 (年はy、秒はsなど) を示す間隔タイプコードによって定義され、時間間隔の値は最大2桁 ({ynn}の{y11}など) になります。最初のタイプ コードの前にマイナス (-) 記号が付いている場合、期間が開始時刻から逆にカウントされることを意味します ({-snn} の {-s87} など)。最初の時間タイプ以外の他の時間タイプ コードの前にマイナス (-) 記号がある場合は、期間全体からこれらの条件で表される時間が差し引かれます (後述の「期間の組み合わせ」セクションの例を参照)。次の表に、時間間隔単位のタイプ、その表記、使用可能な値、代用を示します。
| タイプ | 表記 | 値ドメイン | 代用 | 説明 |
|---|---|---|---|---|
| 年 | ynn | nn=1...99 | nn年間の期間を定義します。例: (y1991M11d14h5m30s19) {y1}は、1991年11月14日午前5時30分19秒から1992年11月14日午前5時30分19秒までを意味します。注:2 月 29 日に関しては、年単位の期間の対象がうるう年以外の年になる場合、その年の 2 月 28 日までになります。 | |
| 月 | Mnn | nn=1...99 | {M12} = {y1} | nnか月の期間を定義します。例: (y1991M11d14h5m30s19) {M3}は、1991年11月14日午前5時30分19秒から1992年2月14日午前5時30分19秒までを意味します。 |
| 週 | wnn | nn=1...99 | nn週間 (nn*7日) の期間を定義します。例: (y1991M11d14h5m30s19) {w2}は、1991年11月14日午前5時30分19秒から1991年11月28日午前5時30分19秒までを意味します。 | |
| 日 | dnn | nn=1...99 | {d7} = {w1} | nn日間 (nn*24時間) の期間を定義します。例: (y1991M11d14h5m30s19) {d2}は、1991年11月14日午前5時30分19秒から1991年11月16日午前5時30分19秒までを意味します。 |
| 時間 | hnn | nn=1...99 | {h24} = {d1} | nn時間 (nn*60分) の期間を定義します。例: (y1991M11d14h5m30s19) {h10}は、1991年11月14日午前5時30分19秒から1991年11月14日午後3時30分19秒までを意味します。 |
| 分 | mnn | nn=1...99 | {m60} = {h1} | nn分間 (nn*60秒) の期間を定義します。例: (y1991M11d14h5m30s19) {m11}は、1991年11月14日午前5時30分19秒から1991年11月14日午前5時41分19秒までを意味します。 |
| 秒 | snn | nn=1...99 | {s60} = {m1} | nn秒間の期間を定義します。例: (y1991M11d14h5m30s19) {s21}は、1991年11月14日午前5時30分19秒から1991年11月14日午前5時30分40秒までを意味します。 |
デフォルト値
基本的な期間のシーケンス内で欠落しているそれぞれの時間タイプの値のデフォルト値は0 (ゼロ) です。
複数の期間単位で構成される期間は、開始時刻と同様に、個々の条件を階層順に並べて表されます。
条件の組み合わせの合計期間は、すべての単一の期間の合計になります。次に例を示します。
{y2M1w2}は 2 年、1 か月、2 週間の期間を意味します。{y2-M1w2}は 2 年から 1 か月を引いてから 2 週間を足した期間を意味します。{y2-M1-w2}は2年から1か月を引いてから (さらに) 2週間を引いた期間を意味します。最後の2週間の減算は、1か月の条件からではなく、累積条件全体からの減算になります。
注
(Starting Time)がない場合、{Time Duration}はタイムドメインではなく期間を示します。つまり、{h11}は「11時間の期間」のみを示し、特定の日、期間、時点にはリンクされませんが、(M5){h11}は「毎年5月1日の午前0時00分00から午前11時00分まで」を示します。いつ開始するかがわからない場合、11時間の期間に条件または制限を適用することはできません。
タイムドメインの基本的な例
| タイムドメイン | 説明 |
|---|---|
(y1994t1) | 1994年、すべての月/すべての週、毎週日曜日 (t1)、午前00時00分00秒 |
(w9h11m30) | すべての年の9週目、その週のすべての日、午前11時30分0秒 |
(h9){h4} | 午前9時から午後1時まで、毎日、毎月、毎年 |
(M3t6h19m30){h2m30} | 毎年 3 月の毎週金曜日 19 時 30 分から 22 時 00 分まで |
(h9){h4}または(h13){-h4}または(h13)-{h4} | 午前9時から午後1時まで、毎日、毎年 |
タイムドメインの高度な概念
タイムドメインの組み合わせ
タイムドメインは、最小の時間単位である秒のセットとして考えることができ、次のようなセット演算と組み合わせることができます。
- 表記法による交差の設定
* - 表記法による和集合の設定
+ - 表記法による減算の設定
-
複雑なタイムドメインを使用すると、和集合、共通集合、減算などを含む複雑な間隔を定義できます。たとえば、-+(h9){h3}(h13m30){h5m30}(t1){d1}は「日曜日を除く毎日、午前9時から午前12時まで、および午後13時30分から午後7時まで」を意味します。
(h9){h3}:9時間目 (h9) に開始し、3時間 (h3) 継続します。つまり、午前9時から午前12時までです。+ (h13m30){h5m30}:および (+) は、13時間30分 (h13m30) に開始し、5時間30分{h5m30}、つまり13:30から19:00までの時間帯になります。- (t1){d1}:全日{d1}の、週の最初の曜日 (t1) を除く (-)、つまり日曜日を除きます。
タイムドメインの高度な例
例01
(y1992){-m5}
1992 年の開始前の最後の 5 分間。
例 02
-+(h9m30){h5m30}(h16m30){h4m30}(M6){M4}
毎日、9 時 30 分から 15 時 00 分および 16 時 30 分から 21 時 00 分、6 月から 9 月までの月を除く。
説明:
-
-+
(h9m30){h5m30}(h16m30){h4m30}(M6){M4}:9 時 30 分から 5 時間 30 分、つまり 9 時 30 分から 15 時 00 分まで -
-+(h9m30)
{h5m30}(h16m30){h4m30}(M6){M4}:16 時 30 分から 4 時間 30 分、つまり 16 時 30 分から 21 時 00 分まで -
-+(h9m30)
{h5m30}(h16m30){h4m30}(M6){M4}:6月 (6番目の月) から4か月、つまり6月から9月。
例03
-+*(t2){d5}(h8m10){m35}+*(t2){d5}(h12m15){m35}+*(t2){d5}(h13m30){m40}*(t2){d5}(h16){m40}(M7d2){d1}
毎週月曜日から金曜日、8時10分から8時45分、12時15分から12時50分、13時30分から14時10分、16時00分から16時40分、7月2日を除く。
説明:
-
-+
(t2){d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+*(t2){d5}(h13m30){m40}*(t2){d5}(h16){m40}(M7d2){d1}:月曜日 (週の2番目の日) から5日間、つまり月曜日から金曜日まで。 -
-+ (t2)
{d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+(t2){d5}(h13m30){m40}(t2){d5}(h16){m40}(M7d2){d1}:8 時 10 分から 35 分間、つまり 8 時 10 分から 8 時 45 分 -
-+ (t2)
{d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+(t2){d5}(h13m30){m40}(t2){d5}(h16){m40}(M7d2){d1}:12 時 15 から 12 時 50 分まで -
-+ (t2)
{d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+(t2){d5}(h13m30){m40}(t2){d5}(h16){m40}(M7d2){d1}:13 時 30 から 14 時 10 分まで -
-+ (t2)
{d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+(t2){d5}(h13m30){m40}(t2){d5}(h16){m40}(M7d2){d1}:16 時 00 分から 16 時 40 分まで -
-+ (t2)
{d5}(h8m10){m35}+(t2){d5}(h12m15){m35}+(t2){d5}(h13m30){m40}(t2){d5}(h16){m40}(M7d2){d1}:7月 (7番目の月) の2番目の日、期間は1日、つまり7月2日
例04
*(M2l11h2){M8}(M9f36h2){-M8}
毎年、2月の最終日曜日 (午前2時) から9月の第3金曜日 (午前2時) まで。
説明:
-
*
(M2l11h2){M8}(M9f36h2){-M8}: 2月の最終日曜日の午前2時から8か月間 -
*(M2l11h2)
{M8}(M9f36h2){-M8}: 9月の第3金曜日午前2時までの8か月間
例05
*(M9f17h22){M8}(M4f17h22){-M8}
毎年9月の第1土曜日22時から翌年4月第1土曜日22時00分まで
説明:
-
*
(M9f17h22){M8}(M4f17h22){-M8}: 9月の第1土曜日22時00分から8か月間 -
*(M9f17h22)
{M8}(M4f17h22){-M8}: 4 月の第 1 土曜日 22 時 00 分までの 8 か月間
例 06
-(M10d10h8){M5}(M3d10h8){-d9}
毎年10月10日午前8時から翌年3月1日午前8時まで。
説明:
-
-
(M10d10h8){M5}(M3d10h8){-d9}:10月10日午前8時から3月10日午前8時まで -
-(M10d10h8)
{M5}(M3d10h8){-d9}:3月10日午前8時までの9日間
例07
---*+(h9){h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}
午前9時00分から午前12時00分まで、さらに月曜日から土曜日までの毎日13時30分から19時00分まで。5月1日、1月の最終火曜日、8月全日を除く。
説明:
-
---*+
(h9){h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}:午前9時から午後12時 -
---*+(h9)
{h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}:13 時 30 分から 19 時 00 分まで -
---*+(h9)
{h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}:月曜日から6日間、つまり月曜日から土曜日まで -
---*+(h9)
{h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}: first of May -
---*+(h9)
{h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}:1 月の最終火曜日 -
---*+(h9)
{h3}(h13m30){h5m30}(t2){d6}(M5d1){d1}(M1l13){d1}(M8){M1}:8 月全日
例 08
-*(t2){d5}(h16){h1}(M7){M2}
毎年、毎週、月曜日から金曜日、16時00分から17時00分まで、7月と8月を除く。
説明:
-
-*
(t2){d5}(h16){h1}(M7){M2}:月曜日から 5 日間、つまり月曜日から金曜日まで -
-*(t2)
{d5}(h16){h1}(M7){M2}:16 時 00 分から 17 時 00 分まで -
-*(t2)
{d5}(h16){h1}(M7){M2}:7 月から 2 か月間、つまり 7 月と 8 月
例 09
-+*(t2){d6}(h8){m45}*(t2){d6}(h16m15){m45}(M7){M2}
毎年、毎週、月曜日から土曜日、午前8時00分から午前8時45分まで、16時15分から17時00分まで、7月と8月を除く。
説明:
-
-+*
(t2){d6}(h8){m45}*(t2){d6}(h16m15){m45}(M7){M2}:月曜日から土曜日まで -
-+ (t2)
{d6}(h8){m45}(t2){d6}(h16m15){m45}(M7){M2}:午前8時~午前8時45分 -
-+ (t2)
{d6}(h8){m45}(t2){d6}(h16m15){m45}(M7){M2}:16 時 15 分から 17 時 00 分まで -
-+ (t2)
{d6}(h8){m45}(t2){d6}(h16m15){m45}(M7){M2}:7 月と 8 月
例 10
-++*(t2){d4}(h15m45){m20}*(t2){d5}(h8m15){m20}*+(t3){d2}(t6){d1}(h13){m35}(M7){M2}
毎年、毎週、月曜日から木曜日、15 時 45 分から 14 時 05 分まで、月曜日から金曜日、8 時 15 分から 8 時 35 分まで、火曜日から水曜日と金曜日、13 時 00 分から 13 時 35 分まで、7 月と 8 月を除く。
または、
毎年、毎週、
月曜日、8 時 15 分から 8 時 35 分まで、15 時 45 分から 14 時 05 分まで、
火曜日と水曜日、8 時 15 分から 8 時 35 分まで、13 時 00 分から 13 時 35 分まで、15 時 45 分から 14 時 05 分まで、
木曜日、8 時 15 分から 8 時 35 分まで、15 時 45 分から 14 時 05 分まで、
金曜日、8 時 15 分から 8 時 35 分まで、13 時 00 分から 13 時 35 分まで、
7 月と 8 月を除く
説明:
-
-++
*(t2){d4}(h15m45){m20}*(t2){d5}(h8m15){m20}*+(t3){d2}(t6){d1}(h13){m35}(M7){M2}: 月曜日から木曜日、15 時 45 分から 14 時 05 分まで -
-++ (t2)
{d4}(h15m45){m20}*(t2){d5}(h8m15){m20}+(t3){d2}(t6){d1}(h13){m35}(M7){M2}:月曜日から金曜日、8 時 15 分から 8 時 35 分まで -
-++ (t2)
{d4}(h15m45){m20}(t2){d5}(h8m15){m20}*+(t3){d2}(t6){d1}(h13){m35}(M7){M2}:火曜日から水曜日および金曜日、13 時 00 分から 13 時 35 分まで -
-++ (t2){d4}(h15m45){m20}(t2){d5}(h8m15){m20}*+(t3){d2}(t6){d1}(h13){m35}(M7){M2}: except July and August
タイムドメイン構文のスペースと改行
さまざまな時間条件と同様に、タイムドメインの式では、いずれかの構文要素「[」、「(」、「)」、「{」、「}」、「]」、「-」、「+」、「\*」の横に任意の数のスペースと改行文字を含めることができます。内部要素である時間条件そのものは分解できません。
有効な構文:
(M5d1){d1}
(M5 d1) {d1}
---*+
(h9){h3} (h13m30){h5m30} (t2){d6}
(M5d1){d1} (M1l13){d1} (M8){M1}
無効な構文:
(M 5d1){d1}
タイムドメインのユースケース
特定の条件または制限が適用される期間、または有効な期間を指定するために、ルート検索サービスでタイムドメインを使用する方法の詳細については、「時間依存の制限」を参照してください。
タイムドメインの特殊表記と拡張
- GDF 5.1仕様 (ISO 20524-1:2020) ではタイムドメイン形式を中置表記で記述しますが、ルート検索サービスでは前置表記を使用します。その結果、構文に以下のような違いが生じます。
- 中置表記では
[および]が必須ですが、前置表記ではオプションです。 - 中置表記と前置表記:
- 中置表記では
| Infix | 前置表記 |
|---|---|
[[(d1){w1}]-[(d3){d1}]] | -(d1){w1}(d3){d1} |
[[(d1){w1}]*[(d3){-w1}]] | *(d1){w1}(d3){-w1} |
[[[(t2){d5}]*[(h16){h1}]]-[(M7){M2}]] | -*(t2){d5}(h16){h1}(M7){M2} |
あいまい条件
- 「開始時刻の構文」で説明されている条件は開始時刻の明確な条件と呼ばれ、
znnは先行する明確な条件のStarting Time Fuzzy条件を表します。z0-z49の番号が付けられたあいまい条件は、開始時刻に関する有効なあいまい条件です。 - 「期間の構文」で説明されている条件は期間の明確な条件と呼ばれ、
znnnはTime Duration Fuzzy条件を表します。z50-z100の番号が付けられたあいまい条件は、期間に関する有効なあいまい条件です。 Starting Timeでは、znn条件の前にマイナス記号を付けることができます (-znn)。明確な時間条件の場合とは異なり、マイナス記号はstarts (or ends) at beginning ofからstarts (or ends) at end ofに条件のセマンティクスを変更します (たとえば、(M12-z15)はすべての年の 12 月のピーク時の終わりを意味しますが、(-m30-z15)はピーク時が終わるまでの 30 分前を意味します)。Time Durationでは、znnn条件の前にマイナス記号を付けることができます (-znnn)。明確な時間条件の場合とは異なり、マイナス記号を付けると条件のセマンティクスが変更され、補集合になります (たとえば、{z55}は冬の期間を意味しますが、{-z55}は冬以外の期間を意味します)。- タイム ドメイン形式で表される時間間隔は、常に
Segmentのローカルのタイム ゾーンで示されます。 - ルート検索サービスで使用される、タイムドメイン表記の追加の構文項目。
使用可能なあいまい条件の詳細については、「タイムドメインのあいまい条件」を参照してください。
18 日前の更新