日付・時刻型(日付)の活用ポイントを説明します。

日付・時刻型で「日付」「時刻」「日付と時刻」の3種類から「日付」を選択すると、年月日を扱う項目が用意されます。 年は1753年〜9999年の範囲で指定できます。

図1 日付型

Javaとの関係

日付型項目は、内部では java.sql.Date クラスとして管理されます。

Wagbyでは、入力された値は「フィルタ」によって補正されます。 フィルタにより「ゆれ」を自動的に補正することができます。この機能は自動的に設定されます。
日付型項目で選択できるフィルタは次のとおりです。

日付型

入力値を日付と判断して、日付型に変換するフィルタです。全角で入力された数値はすべて半角に統一します。

図2 入力フィルタ
フィルタはWebフォーム、アップロード更新、REST APIいずれも共通で利用されます。

日付型項目は図3のような入力欄が用意されます。

図3 日付型項目の入力欄

数字とハイフン(「-」)以外の入力は図4のようなエラーになります。正常に入力した場合は図5のようになります。

図4 入力エラー
図5 入力が正常に行えた

入力欄をクリックすると図6のようにカレンダが表示されます。

Date Picker と呼びます。

図6 カレンダによる入力

定義方法

モデル項目詳細定義ダイアログの「入力制御」タブから、日付入力方式を「カレンダの利用」とします。 (日付型の標準は、「カレンダの利用」となっています。)

図7 カレンダの利用を行う設定

入力フィールドの幅

標準では、プルダウンで表示されるカレンダーの幅がそのまま入力フィールドの幅となります。この幅を調整することができます。詳細は「入力制御 > 入力フィールド長 > 日付型(カレンダ利用)の場合」をお読みください。

カレンダではなくリストボックス形式で日付を入力することもできます。 図8は、年のみを入力するリストボックスです。(月日は自動的に1月1日として扱います。)

図8 リストボックスで年を指定する

図9は年と月をリストボックス形式で入力する例です。(日は自動的に1日として扱います。)

図9 リストボックスで年月を指定する

図10は年月日をリストボックス形式で入力する例です。

図10 リストボックスで年月日を指定する

開始年・終了年を指定する

リストボックス利用時は、(選択肢として表示される)開始年と終了年を指定できます。 図11は、開始年を1950年とし、終了年を現在の年とした例です。

図11 開始年と終了年を指定する

図12のように年の開始が1950年からとなります。

図12 1950年から選択できる

指定書式は次のとおりコンマで区切ります。

開始年,終了年

開始年と終了年に「now」という表記を用いることもできます。この now は、現在の年という意味です。 例を示します。

1950年から、2020年までを選択できるようにする。
1950,2020
1950年から、今年までを選択できるようにする。
1950,now
10年前から、2020年までを選択できるようにする。
now-10,2020
50年前から、10年後までを選択できるようにする。
now-50,now+10

日付オートフォーマット機能とは、さまざまな入力パターンからyyyy-MM-dd形式に自動変換する機能です。

実行例 (カレンダの場合)

"5 20" と入力し、カーソルを離すと自動的に変換されます。

図13 日付オートフォーマット 入力時
図14 日付オートフォーマット カーソル移動直後

定義方法(カレンダの場合)

定義箇所はありません。カレンダ入力の場合、日付オートフォーマットは自動的に有効になります。(無効にすることはできません。)

実行例 (テキストフィールドの場合)

"11 7" と入力し、カーソルを離すと自動的に変換されます。

図15 日付オートフォーマット 入力時
図16 日付オートフォーマット カーソル移動直後

定義方法(テキストフィールドの場合)

モデル項目詳細ダイアログで日付入力方式の選択肢を空(直接入力)にし、日付をテキストボックスによる直接入力とします。 その上で「日付オートフォーマット機能を有効にする」のチェックを設定します。

図17 日付オートフォーマットの設定

変換のパターン

変換パターン例を以下に示します。

入力値 変換後
11 7 2014-11-07
H26 11 7 2014-11-07
2014/11/7 または 2014/11/07 2014-11-07
2014 11 07 2014-11-07
20141107 2014-11-07
s 47 5 15 1972-05-15
m(またはM)、t(またはT)、s(またはS)、h(またはH)はそれぞれ明治、大正、昭和、平成を意味する特別表記です。

日付・時刻のフォーマットは「出力制御」タブで指定します。

図18 日付・時刻フォーマットの指定

出力制御という枠組みになっていますが、入力時も適用されます。

図19 yyyy-MM-dd
図20 yyyy年MM月dd日

MM月指定とM月指定

フォーマットは「MM月」「dd日」と「M月」「d日」が用意されています。MMやdd書式では、1月は"01月"と、必ず2桁で表記されます。

図21 日付・時刻フォーマットの選択肢

ユーザ定義

Wagbyが標準で用意したフォーマットではなく、開発者が直接、フォーマットを記述することもできます。

注意点

日付型項目で「年」を含めないフォーマット指定を行うと、年部分は "1970" で補完されます。同様に、月や日を省略すると "01" で補完されます。

入力制御

入力欄の横に、別の日付フォーマットで表示させることができます。 図21は「(平成○年○月○日○曜日)」というフォーマットを指定した例です。

図21 オプション表示の設定

図20のように、入力欄の横に日付が表示されます。このオプション表示は登録、更新画面で有効です。

図22 オプション表示の例

用意されているフォーマットは次のとおりです。

  • 平成○年
  • 平成○年○月
  • 平成○年○月○日
  • ○曜日
  • 月[曜日を1文字で表現]
  • 平成○年○月○日○曜日
「日付、日付と時間、時間フォーマット(ユーザ定義)」を指定している場合、本設定を利用することはできません。

出力制御

出力制御にもオプションを指定することができます。(図23,図24)

図23 オプション表示の設定(出力制御)
図24 オプション表示の例(出力時)

「入力制御>日付・数値の初期値は表示しない」をお読み下さい。

「検索制御>範囲検索を行う」をお読み下さい。

「入力制御 > 日付・時刻 > オプション表示(日付)」および「出力制御 > フォーマット」で和暦フォーマットを指定した場合、平成1年を平成元年と表示します。

入力画面では「オプション表示(日付)」の対応を行っていますが、ドロップダウンカレンダの入力フィールドの日付は"平成1年"と表示されます。これは仕様となります。
この動作をカスタマイズすることができます。詳細は「Wagby Developer Network > 和暦の扱い」をお読みください。
  • 日付型項目を主キーとしたとき、日付の書式は "yyyy-MM-dd" のみが許容されます。他の書式は指定できません。
  • カレンダ形式の入力、リストボックス形式の入力と、日付オートフォーマットを同時に設定することはできません。