0
0

More than 3 years have passed since last update.

Javaの基本的な日付操作

Posted at

人、時間、物、金を扱うプログラムは難しくなる

そんな中で時間を扱ったのでメモ

まずJavaで日付を使用するには以下をインポートする必要がある。

import java.util.Date;

その後はいつものインスタンス化

//日付のインスタンス化
Date date = new Date();

で、今回は過去日をエラーとする処理を組むので2つの処理を入れました。
今回は日付のみで時間だけでエラーチェックするようなので以下のファイルもインポートしました。

import java.text.ParseException;
import java.text.SimpleDateFormat;

java.text.ParseExceptionは日付型から文字列に変更するヤツです。
java.text.SimpleDateFormatは「YYYY-MM-DD」とかに変更できるヤツです。

String nowDate = sdFormat.format(date);

まずは、SimpleDateFormatで現在日を取得します。
サーバーから現在日取れるのは便利ですね。

checkDate = sdFormat.parse(checkStr);

その後、ParseExceptionでString型をData型に変換します。
これはtry/catchでくくらないとeclipceから怒られます。

それでなんだかんだ試行錯誤してみたのがコチラ

if (date.after(checkDate)) {
  if(!nowDate.equals(checkStr)) {
    //エラーの時の処理を書く
  }
}

date.afterと同じ日付の時はエラーにしました。
これで「選択日 > 日付」の場合エラーになります。

PHPは型操作とかあまり気にせず組めましたが、Javaは型をキッチリ宣言して、変更するときも明示しないといけないので大変ですね。

そしてJSPに書いたHTML5ですが…

<input type="date" name="date" required value=<%=dateStr %>>

日付型凄く便利ですね。

valueに値を入れたら初期値としてセットされますし。

従来なら「8桁の数字で入力してください。」とか注釈を入れたもんですが。
「YYYY-MM-DD」形式で値を飛ばしてくれるので非常に楽です。

操作する側もカレンダーが表示されて選択できますし、双方に利があって凄く便利でした。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0