# DataMagicの自動判定による日付データの読み込み処理

日付タイプ（Dタイプ）に入力可能な文字データの書式について説明します。ここで説明する動作は、オプションタブで入力の日付フォーマットを指定していない場合の動作です。

日付タイプの出力については、マッピング情報設定の出力フォーマットの形式で設定してください。設定しない場合は"YYYY/MM/DD"の形式になります。

(1) 区切り文字

年、月、日を区切る文字（日付区切り文字）には「/（スラッシュ）」、「-（マイナス）」、「.（ピリオド）」が使用できます。書式として指定できるパターンは以下のとおりです。これ以外の書式は変換エラーになります。

表4.23 日付区切り文字の書式（データ加工開始日が2007/10/1の場合）（*1）

パターン | 例
--- | ---
入力文字列 | Dタイプの値
月/日 | 1/2 | 2007/01/02 00:00:00
月.日 | 1.2 | 2007/01/02 00:00:00
年(2桁)-月-日 | 01-2-3 | 2001/02/03 00:00:00(*2)
月/日/年(2桁) | 2/1/03 | 2003/02/01 00:00:00(*2)(*3)
月.日.年(2桁) | 2.1.03 | 2003/02/01 00:00:00(*2)(*3)
年(4桁)-月-日 | 2001-2-3 | 2001/02/03 00:00:00
年(4桁)/月/日 | 2001/2/3 | 2001/02/03 00:00:00
年(4桁).月.日 | 2001.2.3 | 2001/02/03 00:00:00
元号年(省略形)-月-日 | H1-2-3 | 1989/02/03 00:00:00
元号年(省略形)/月/日 | H1/2/3 | 1989/02/03 00:00:00
元号年(省略形).月.日 | H1.2.3 | 1989/02/03 00:00:00

*1 | : | 桁数指定のない年,月,日については1桁及び2桁の値を入力可能です。
*2 | : | 年の値が69以上の場合は1900年代、68以下の場合は2000年代とみなされます。
*3 | : | 米国表記のMM/DD/YYとして解釈します。

時、分、秒を区切る文字（時刻区切り文字）には「:（コロン）」が使用できます。書式として指定できる書式は以下のとおりです。これ以外の書式は変換エラーになります。

表4.24 時刻区切り文字の書式（データ加工開始日が2007/10/1の場合）

パターン | 例
--- | ---
入力文字列 | Dタイプの値
時:分 | 12:34 | 2007/10/01 12:34:00
時:分:秒 | 12:34:56 | 2007/10/01 12:34:56

= 備考 =

日付と時刻を両方指定する場合は、日付部分と時刻部分を、半角スペースまたは全角スペースで区切ってください。

日付区切り文字と時刻区切り文字を省略して数字のみで指定する場合、桁数によって以下のように解釈されます。

表4.25 区切り文字なしの日付データ（データ加工開始日が2007/10/1の場合）

桁数 | 解釈 | 例
--- | --- | ---
入力文字列 | Dタイプの値
1～2桁 | 時刻（1～2桁） | 1 | 2007/10/01 01:00:00
|  | 11 | 2007/10/01 11:00:00
3～4桁 | 時刻（1～2桁） 分（2桁） | 111 | 2007/10/01 01:11:00
|  | 1111 | 2007/10/01 11:11:00
5桁 | 変換エラー |  |
6桁 | 年（2桁）月（2桁）日（2桁） | 111111 | 2011/11/11 00:00:00
7桁 | 変換エラー |  |
8桁 | 年（4桁）月（2桁）日（2桁） | 11111111 | 1111/11/11 00:00:00
9桁以上 | 動作を保証しません |  |

(2) 繰り上がり

時が24以上の場合、月が13以上の場合などは、繰り上がって適切な日時に変換されます。

表4.26 繰り上がりの例（データ加工開始日が2007/10/1の場合）

入力文字列 | 繰り上がり前の値 | 繰り上がり後の値
--- | --- | ---
24 | 2007/10/01 24:00:00 | 2007/10/02 00:00:00
5555 | 2007/10/01 55:55:00 | 2007/10/03 07:55:00
55/55 | 2007/55/55 00:00:00 | 2011/08/24 00:00:00

(3) 和暦

和暦を入力する場合、以下の形式で入力してください。他の形式の場合の動作を保証しません。

表4.27 指定可能な和暦の形式

日付 | 時間 | 例
--- | --- | ---
年月日 | なし | 2007年10月26日
平成19年10月26日
時 | 2007年10月26日　12時
平成19年10月26日　12時
時分 | 2007年10月26日　12時30分
平成19年10月26日　12時30分
時分秒 | 2007年10月26日　12時30分45秒
平成19年10月26日　12時30分45秒
月日 | なし | 10月26日
時 | 10月26日　12時
時分 | 10月26日　12時30分
時分秒 | 10月26日　12時30分45秒

= 備考 =

平成より新しい元号に対応するには、システム動作環境設定ファイル（huledenv.conf）の「元号（era_name）」で新しい元号を設定する必要があります。

(4) 出力時の日付演算

自動判定で日付データを読み込んだ場合、その入力値に対して加算や減算を行って、データを出力できます。出力情報設定画面の「演算式」で、演算記号や日付の単位を意味する記号（dayやyear）などを組み合わせて指定し、マッピング情報設定の出力フォーマットの形式で"日付"を指定します。

指定例と演算結果を次に示します。

表4.28 日付演算の例（データ加工開始日時（today）が2007/10/1 12:34:56の場合）

入力文字列 | Dタイプの値
--- | ---
today | 2007/10/01 12:34:56
today +10 hour | 2007/10/01 22:34:56
today +1 day | 2007/10/02 12:34:56
today 2month ago | 2007/08/01 12:34:56

= 備考 =

日付演算の詳細は「DataMagic リファレンスマニュアル」を参照してください。