web-dev-qa-db-ja.com

Javaで日付を作成する正しい方法は何ですか?

DateクラスのJava AP​​Iに混乱します。すべてが非推奨になり、Calendarクラスにリンクしているようです。だから、私はカレンダーオブジェクトを使用して日付でやりたいことをやり始めましたが、直感的には、2つの日付を作成して比較したいときにカレンダーオブジェクトを使用するのは直感的に面倒です。

それを行う簡単な方法はありますか?今のところ

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, hour, minute, second);
Date date = cal.getTime(); // get back a Date object
85
seb

SimpleDateFormat を使用できます

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date d = sdf.parse("21/12/2012");

しかし、カレンダーを使用するよりもrightを考慮する必要があるかどうかはわかりません...

104
Maxx

優れた joda-time ライブラリは、ほとんどの場合、JavaのDateクラスまたはCalendarクラスよりも優れた選択肢です。次に例を示します。

DateTime aDate = new DateTime(year, month, day, hour, minute, second);
DateTime anotherDate = new DateTime(anotherYear, anotherMonth, anotherDay, ...);
if (aDate.isAfter(anotherDate)) {...}
DateTime yearFromADate = aDate.plusYears(1);
35
Chris Knight

joda-time を試すことができます。

15