時系列データの時間値は日付フィールドに格納することをお勧めします。日付フィールドは、日時情報を格納するために設けられた特殊なデータベース フィールドです。日付フィールドを使用することでクエリのパフォーマンスが向上し、数値フィールドや文字列フィールドに時間を格納する場合より高度なデータベース クエリを実行できます。
文字列フィールドまたは数値フィールドに時間値を格納している場合、[時間フィールドの変換 (Convert Time Field)] ジオプロセシング ツールを使用して、それらのフィールド (short、long、float、または double) を日付フィールドに変換できます。[時間フィールドの変換 (Convert Time Field)] ジオプロセシング ツールでは、日時値を解釈し、それらを ArcGIS 対応の日付形式へ変換するための標準方式または独自の方式を柔軟に指定できます。文字列フィールドまたは数値フィールドに時間値を格納する場合、標準としてサポートされているいずれかの文字列形式または数値形式に従う必要があります。ただし、「Tuesday, August 20, 2002」のように、独自の日時形式を使用して、時間値を文字列フィールドに格納している場合もあります。
[時間フィールドの変換 (Convert Time Field)] ジオプロセシング ツールでサポートされている標準形式は使い方が容易です。ただし、独自の日時形式で文字列フィールドに日時値を格納する場合は、この後の説明を参照し、データの解釈時に独自の日時形式がどのように処理されるかを理解しておく必要があります。たとえば、[時間フィールドの変換 (Convert Time Field)] ジオプロセシング ツールを使用し、文字列として格納されている「Tuesday, August 20, 2002」日時値を日付形式に変換する場合は、入力日時形式を「dddd, MMMM dd, yyyy」として指定します。
日時のフォーマット ピクチャ
日時のフォーマット ピクチャは、日時情報を含むデータ値を解釈する際に使用される一連のテキストです。それぞれのフォーマット ピクチャは、使用可能な種類のフォーマットを組み合わせたものです。たとえば、フォーマットの種類には、曜日、月、時、秒などがあります。1 つの日時フォーマット ピクチャでは、フォーマットの種類ごとに 1 つのフォーマットのみを使用できます。ただし、必ずしもすべての種類のフォーマットがフォーマット ピクチャに含まれていなくてもかまいません。たとえば、通常、日付フォーマット ピクチャは年、月、日で構成され、時刻に関する情報は含まれません。
フォーマット ピクチャは、時刻情報のみ、日付情報のみ、または時刻と日付の組み合わせで構成できます。フォーマット ピクチャではカンマなどの区切り文字も使用できます。
通常、カスタム データを解析し、そのデータを解釈するのに必要な日時フォーマット ピクチャを決定する必要があります。次の例に示すように、日付と時刻はさまざ形式で表示することができます。
日時フォーマット ピクチャの例
データ値 | フォーマット ピクチャ |
---|---|
30/05/1978 02:34:56 | dd/MM/yyyy HH:mm:ss |
2/4/2010 2:39:28 PM | M/d/yyyy h:mm:ss tt |
6:05:12 a.m. | h:mm:ss tt |
23:31:18.345 | HH:mm:ss.s |
Tuesday, August 20, 2002 | dddd, MMMM dd, yyyy |
Wed, Aug 31 1994 | ddd, MMM dd yyyy |
03281999030456 | MMddyyyyHHmmss |
日時のフォーマット
次の表に、カスタム データの日時フォーマット ピクチャを指定する際に使用できるフォーマット要素を示します。
日時のフォーマット
フォーマット | フォーマットの種類 | 説明 |
---|---|---|
d | 日 | 「日」を数字で表します。日にちが 1 桁の場合、数字の前にゼロが付きません。 |
dd | 日 | 「日」を数字で表します。日にちが 1 桁の場合、数字の前にゼロが付きます。 |
ddd | 曜日 | 3 文字の略語で曜日を表します。それぞれのロケールに適した略語が使用されます。たとえば、米国では英語の「Mon」が使用されます。 |
dddd | 曜日 | 曜日を正式名で表します。それぞれのロケールに適した正式曜日名が使用されます。たとえば、米国では英語の「Monday」が使用されます。 |
M | 月 | 「月」を数字で表します。月が 1 桁の場合、数字の前にゼロが付きません。 |
MM | 月 | 「月」を数字で表します。月が 1 桁の場合、数字の前にゼロが付きます。 |
MMM | 月 | 「月」を 3 文字の略語で表します。それぞれのロケールに適した略語が使用されます。たとえば、米国では英語の「Nov」が使用されます。 |
MMMM | 月 | 「月」を正式名で表します。それぞれのロケールに適した正式月名が使用されます。たとえば、米国では英語の「November」が使用され、スペインではスペイン語の「Noviembre」が使用されます。 |
y | 年 | 下 2 桁の数字で「年」を表します。ただし、年が 9 以下の場合、数字の先頭にゼロが付きません。 |
yy | 年 | 下 2 桁の数字で「年」を表します。ただし、年が 9 以下の場合、数字の先頭にゼロが付きます。 |
yyy | 年 | 3 桁の数字で「年」を表します。この方法で表される年は 1 ~ 999 です。 |
yyyy | 年 | 4 桁の数字で「年」を表します。 |
gg | 元号/時代 | 時代や元号を表す文字列。それぞれのロケールに適した時代/元号値が使用されます。 |
h | 時 | 12 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きません。 |
H | 時 | 24 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きません。 |
hh | 時 | 12 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きます。 |
HH | 時 | 24 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きます。 |
m | 分 | 「分」を表します。分が 1 桁の場合、数字の先頭にゼロが付きません。 |
mm | 分 | 「分」を表します。分が 1 桁の場合、数字の先頭にゼロが付きます。 |
s | 秒 | 「秒」を表します。秒が 1 桁の場合、数字の先頭にゼロが付きません。 |
ss | 秒 | 「秒」を表します。秒が 1 桁の場合、数字の先頭にゼロが付きます。 |
s.s | 秒 | 「秒」(1 秒未満も含む) を表します。秒が 1 桁の場合、数字の先頭にゼロが付きません。この形式は小数第 1 位のみを表しますが、任意の小数点以下桁数を使用できます。 |
ss.s | 秒 | 秒 (1 秒未満を含む) を表します。秒が 1 桁の場合、数字の先頭にゼロが付きます。この形式は小数第 1 位のみを表しますが、任意の小数点以下桁数を使用できます。 |
t | 時間マーカー | 1 文字の時間マーカー文字列 (A、P など)。 |
tt | 時間マーカー | 複数文字の時間マーカー文字列 (AM、PM など)。 |
区切り文字
区切り文字は、テキスト データ値の情報を区切るための文字です。通常は、カンマ (,)、コロン (:)、スペース ( ) などを区切り文字として使用します。ただし、フォーマット ピクチャで使用できる区切り文字に制限はありません。区切り文字をまったく使用しないでフォーマット ピクチャを作成することもできます。たとえば、一般的なほとんどの区切り文字は数値フィールドに格納できないので、数値フィールドに格納されている日時を解釈するときは区切り文字を使用しない場合があります。
まれに、上記一覧のフォーマットと競合する区切り文字がデータに含まれている場合もあります。そのようなときは、フォーマット ピクチャを作成する際、区切り文字を一重引用符で囲む必要があります。通常、フォーマット ピクチャ内で一重引用符を使用して区切り文字を特定しますが、競合の可能性がない限り、一重引用符を使用しないでください。次に例を示します。
データ値 | フォーマット ピクチャ | 表示される日時 (MM/dd/yyyy または HH:mm:ss) |
---|---|---|
month12day30year2010 | 'month'MM'day'dd'year'yyyy | 12/30/2010 |
30/12/2010 | ddMMyyyy | 12/30/2010 |
Time:18hr6min3sec | 'Time:'h'hr'm'min's'sec' | 18:06:03 |
18:6:3 | HH:m:s | 18:06:03 |
ロケール
上記の一覧に示されているように、一部の日付形式で長い表記法を使用するときは、ロケールに基づいて有効なデータ値が決定されます。たとえば、「MMMM」が値「November」と解釈されるのは、使用されているロケールが英語の場合のみです。フォーマット ピクチャに長い表記法が含まれていない場合、ロケールは日付の解釈に直接影響を与えません。ただし、その場合でも、AM/PM 指定子の解釈がロケールに左右される可能性があることに注意してください。AM/PM 指定子が含まれていない場合は、そのロケールのデフォルトの AM/PM 指定子が使用されます。
ロケールは、フォーマット ピクチャのフォーマットには影響しません。つまり、選択されているロケールにかかわらず、「月」を表すときは文字 M (または MM、MMM、MMMM) を使用します。次の例は、日付の解釈にロケールがどのように影響するかを示しています。
データ値 | フォーマット ピクチャ | ロケール | 表示される日付 (MM/dd/yyyy) |
---|---|---|---|
November 30, 2010 | MMMM dd, yyyy | 英語 (米国) | 11/30/2010 |
Noviembre 30, 2010 | MMMM dd, yyyy | スペイン語 (スペイン) | 11/30/2010 |
Mon, Feb 22, 2010 | ddd, MMM dd, yyyy | 英語 (米国) | 2/22/2010 |
30/12/2010 | dd/M/yyyy | すべてのロケール | 12/30/2010 |
AM/PM 指定子
どのロケールにも標準の時間マーカー (AM/PM 指定子) があります。ただし、ArcGIS の一部のツールでは、独自の時間マーカーを指定できます。フォーマット ピクチャに時間マーカー (t または tt) が含まれている場合は、その時間マーカーを表す文字を指定する必要があります。時間マーカーが必要となるのは、フォーマット ピクチャで 12 時間制の時刻 (h または hh) を使用している場合のみです。フォーマット ピクチャの時刻が 24 時間制 (H または HH) の場合は、時間マーカーを使用しません。独自の時間マーカーを指定しない場合、現在選択しているロケールの標準の時間マーカーが使用されます。独自の AM/PM 指定子を定義するには、時間フィールドがテキスト データ型であることが条件となります。次に例を示します (ここでは、PM 指定子のみを使用しています)。AM 指定子も同様に処理されます。
データ値 | フォーマット ピクチャ | PM 指定子 | 表示される時刻 (HH:mm:ss) |
---|---|---|---|
6:12:34 P | h:mm:ss t | P | 18:12:34 |
6:12:34 p.m. | h:mm:ss tt | p.m. | 18:12:34 |
6:12:34 | H:mm:ss | PM | 6:12:34 |
6:12:34 PM | h:mm:ss tt | PM | 18:12:34 |