web-dev-qa-db-ja.com

日付を1行で設定する

Java API)によれば、コンストラクターDate(year, month, day)は減価償却されています。これを次のコードに置き換えることができることを知っています。

Calendar myCal = Calendar.getInstance();
myCal.set(Calendar.YEAR, theYear);
myCal.set(Calendar.MONTH, theMonth);
myCal.set(Calendar.DAY_OF_MONTH, theDay);
Date theDate = myCal.getTime();

ただし、短いもの(理想的には1〜2行)に置き換えたいと思います。

46
hibernate

new GregorianCalendar(theYear, theMonth, theDay).getTime()を使用できます。

public GregorianCalendar(int year, int month, int dayOfMonth)

デフォルトロケールのデフォルトタイムゾーンに設定された指定された日付でGregorianCalendarを構築します。

73
aioobe

使用できます

new SimpleDateFormat( "yyyyMMdd" ).parse( "20100520" )
22
tangens

これは Joda Time を使用するもう1つの理由です

new DateMidnight(2010, 3, 5)

DateMidnightは非推奨になりましたが、Joda Time DateTimeでも同じ効果が得られます

DateTime dt = new DateTime(2010, 3, 5, 0, 0);
14
Sean Owen

カレンダーには、1回の呼び出しで年、月、および日を設定できる set() メソッドがあります。

myCal.set( theYear, theMonth, theDay );
10
martin clayton

単純なユーティリティメソッドを作成してみませんか。

public final class DateUtils {
    private DateUtils() {
    }

    public static Calendar calendarFor(int year, int month, int day) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH, day);
        return cal;
    }

    // ... maybe other utility methods
}

そして、あなたのコードの残りのどこでもそれを呼び出します:

Calendar cal = DateUtils.calendarFor(2010, Calendar.MAY, 21);
6
Jesper
Date date = new DateTime(2014, 6, 20, 0, 0).toDate();

DateTimeはJoda.orgから https://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html

2
Cheng

コンストラクタDate(year,month,date) in Java 8を使用してください。これは非推奨です:

Date date = new Date(1990, 10, 26, 0, 0);

最良の方法は、SimpleDateFormatを使用することです

DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date date = format.parse("26/10/1985");

インポートする必要があるimport Java.text.SimpleDateFormat;

1
GAbriel lopez