Javaの日付・時刻ライブラリ Joda-Timeが便利そう

2008/05/05

Javaで日付・時刻を扱う場合、DateやらCalendarやらを使い分けなければならず、ずっとなんとかならんかなぁと思っていました。
そのへんをJoda-Timeというライブラリが改善してくれそう、ということで使ってみました。

Joda-Timeはココにあります。

Joda-Timeは、DateやCalendarでできることは当然できる他、期間の表現や文字列のパース、フォーマッタもサポートしており、DateやCalendarの弱点を補完+αなライブラリと言えます。

使ってみる

DateTime datetime = new DateTime();
//日付や時刻のoffset
DateTime threeDaysAgo = datetime.minusDays(3);    //3日前
DateTime twoHoursAfter = datetime.plusHours(2);   //2時間後
System.out.println("3日前は、" + threeDaysAgo);
System.out.println("2時間後は、" + twoHoursAfter);
//フィールドの取り出し
System.out.println("年は、" + datetime.getYear());
System.out.println("月は、" + datetime.getMonthOfYear());
System.out.println("日は、" + datetime.getDayOfMonth());
//日数差の計算
DateTime start = new DateTime(2001, 1, 1, 0, 0, 0, 0);
DateTime end = new DateTime();
System.out.println("今日で21世紀になってから"
    + Days.daysBetween(start, end).getDays() + "日経ちました。。。");

//文字列からDateTimeをつくる
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyyMMdd");
DateTime dt = fmt.parseDateTime("20080505");
//java.util.Dateに変換
Date date = dt.toDate();
//Calendarに変換
Calendar cal = dt.toCalendar(Locale.JAPANESE);


ざっくりとjavadocを見ながら使ってみましたが、なかなかいい感じです。
どういう処理をやるにも大体DateTimeだけで済み、DateとCalendarの行き来がなくなったのがいい。

将来はJDKに含まれる?

Joda-TimeをJDKに含めようとする動きがあるみたいです。
そういった意味でも覚えておいて損はないかも。

Java | コメント(0) | トラックバック(0)
トラックバック
トラックバックURL:
コメントをどうぞ
名前 (入力しなければ「通りすがり」):

メールアドレス (入力しても公開されません):

URL (入力すればリンクが張られます):


コメント:

(コメントにタグなどを使ってもタグがそのままが表示されます)