How create Date Object with values in java Ask Question

How create Date Object with values in java Ask Question

I need a date object for date 2014-02-11. I can't directly create it like this,

Date myDate = new Date(2014, 02, 11);

私は次のようにしています。

Calendar myCalendar = new GregorianCalendar(2014, 2, 11);
Date myDate = myCalendar.getTime();

Java で日付オブジェクトを作成する簡単な方法はありますか?

ベストアンサー1

注意: 月として 2 を渡すと、予期しない結果が生じる可能性があります。Calendar API では、月は 0 から始まります。2 は実際には 3 月を意味します。

カレンダーの使用はすでに十分簡単だと思うので、あなたが探している「簡単な」方法が何なのかわかりません。

月には正しい定数を使用することを忘れないでください:

 Date date = new GregorianCalendar(2014, Calendar.FEBRUARY, 11).getTime();

もう 1 つの方法は、DateFormat を使用することです。通常は次のようなユーティリティを使用します。

 public static Date parseDate(String date) {
     try {
         return new SimpleDateFormat("yyyy-MM-dd").parse(date);
     } catch (ParseException e) {
         return null;
     }
  }

簡単に書けるように

Date myDate = parseDate("2014-02-14");

私が好むもう一つの選択肢は、Java Date/Calendarをもう使わないことです。JODA TimeまたはJava Time(別名JSR310、JDK 8以降で利用可能)に切り替えてください。日付を表すために使用できます。LocalDateこれは次のように簡単に作成できます。

LocalDate myDate =LocalDate.parse("2014-02-14");
// or
LocalDate myDate2 = new LocalDate(2014, 2, 14);
// or, in JDK 8+ Time
LocalDate myDate3 = LocalDate.of(2014, 2, 14);

おすすめ記事