文字列または数値の時間値を日付形式へ変換

時系列データの時間値は日付フィールドに格納することをお勧めします。日付フィールドは、日時情報を格納するために設けられた特殊なデータベース フィールドです。日付フィールドを使用することでクエリのパフォーマンスが向上し、数値フィールドや文字列フィールドに時間を格納する場合より高度なデータベース クエリを実行できます。

文字列フィールドまたは数値フィールドに時間値を格納している場合、[時間フィールドの変換(Convert Time Field)] ジオプロセシング ツールを使用して、それらのフィールド(short、long、float、または double)を日付フィールドに変換できます。[時間フィールドの変換(Convert Time Field)] ジオプロセシング ツールでは、日時値を解釈し、それらを ArcGIS 対応の日付形式へ変換するための標準方式または独自の方式を柔軟に指定できます。文字列フィールドまたは数値フィールドに時間値を格納する場合、標準としてサポートされているいずれかの文字列形式または数値形式に従う必要があります。ただし、「Tuesday, August 20, 2002」のように、独自の日時形式を使用して、時間値を文字列フィールドに格納している場合もあります。

注意注意:

ArcGIS Tracking Analyst でも、データの日時値を解釈するための標準方式または独自の方式を指定できます。ここで説明する概念は、Tracking Analyst エクステンションを使用する場合にもあてはまります。

[時間フィールドの変換(Convert Time Field)] ジオプロセシング ツールでサポートされている標準形式は使い方が容易です。ただし、独自の日時形式で文字列フィールドに日時値を格納する場合は、この後の説明を参照し、データの解釈時に独自の日時形式がどのように処理されるかを理解しておく必要があります。たとえば、[時間フィールドの変換(Convert Time Field)] ジオプロセシング ツールを使用し、文字列として格納されている「Tuesday, August 20, 2002」日時値を日付形式に変換する場合は、入力日時形式を「dddd, MMMM dd, yyyy」として指定します。

注意注意:

  • [時間フィールドの変換(Convert Time Field)] ジオプロセシング ツールを使用するとき、指定できる標準入力時刻形式は、入力時間値が文字列フィールドに格納されているか、数値(short、long、float、double)フィールドに格納されているかによって異なります。
  • [時刻フィールドの変換(Convert Time Field)] ジオプロセシング ツールでは、時間値が文字列フィールドに格納されている場合のみ、独自の日時形式を指定できます。時間値が数値フィールドに格納されている場合は、独自の日時形式を使用できません。

日時のフォーマット ピクチャ

日時のフォーマット ピクチャは、日時情報を含むデータ値を解釈する際に使用される一連のテキストです。それぞれのフォーマット ピクチャは、使用可能な種類のフォーマットを組み合わせたものです。たとえば、フォーマットの種類には、曜日、月、時、秒などがあります。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 以下の場合、数字の先頭にゼロが付きません。

ヒントヒント:

この方法で表される年は 1950 ~ 2049 です。値が 49 以下の場合、その年は 21 世紀と見なされます(2032 など)。値が 50 以上の場合、その年は 20 世紀と見なされます(1967 など)。

yy

下 2 桁の数字で「年」を表します。ただし、年が 9 以下の場合、数字の先頭にゼロが付きます。

ヒントヒント:

この方法で表される年は 1950 ~ 2049 です。値が 49 以下の場合、その年は 21 世紀と見なされます(2032 など)。値が 50 以上の場合、その年は 20 世紀と見なされます(1967 など)。

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 位のみを表しますが、任意の小数点以下桁数を使用できます。

注意注意:

1 秒未満の精度は、時間フィールドのデータ型によって制限されます。たとえば、時間フィールドのデータ型が float または double の場合、丸め誤差が発生する可能性があります。

ss.s

秒(1 秒未満を含む)を表します。秒が 1 桁の場合、数字の先頭にゼロが付きます。この形式は小数第 1 位のみを表しますが、任意の小数点以下桁数を使用できます。

注意注意:

1 秒未満の精度は、時刻フィールドのデータ型によって制限されます。たとえば、時刻フィールドのデータ型が float または double の場合、丸め誤差が発生する可能性があります。

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

関連トピック

5/12/2014