Java8でカレンダーを表示してみる

Java8公開されましたね。

Java8になって日付APIが追加されたので、どんな感じで使えるのかカレンダー表示アプリを作ってみました。 ソースコードgithubにあります。

tarchan/Java8cal · GitHub

f:id:tarchan:20140409093730p:plain

いままではjava.util.Dateとjava.util.Calendarで常に日付と時間がセットになっていましたが、新しいAPIは、java.time.LocalDateとjava.time.LocalTimeで日付と時間にゲンミツに分かれています。

カレンダーアプリを作るにあたっては、「年/月」を表示するラベルがあって月毎に移動できるようにしたのですが、java.time.YearMonthなんていうクラスまであります。LocalDateが年月日なのに対してYearMonthは年月だけなんですね。こんな感じで使えます。

java.time.chrono.JapaneseDateはYearMonthから直接は変換できません。日を指定してLocalDateに変換してからの変換になります。平成は1989-01-08から現在まで等とゲンミツに表現されるからなんですね。