6

重複の可能性:
Date を使用して昨日の日付を取得する

Java Dateオブジェクトの値を昨日に設定するエレガントな方法は何ですか?

4

6 に答える 6

18

24時間前に戻るということですか。

 Date date = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000L);

または、同じ時刻に 1 日戻る (これは、夏時間に応じて 23 または 25 時間になる可能性があります)

 Calendar cal = Calendar.getInstance();
 cal.add(Calendar.DATE, -1); 

夏時間のため、これらはまったく同じではありません。

于 2012-08-15T08:15:17.033 に答える
18

JodaTime

  LocalDate today = LocalDate.now();
    LocalDate yesterday = today.minus(Period.days(1));

    System.out.printf("Today is : %s, Yesterday : %s", today.toString("yyyy-MM-dd"), yesterday.toString("yyyy-MM-dd"));
于 2012-08-15T08:15:29.890 に答える
1

Dateをオブジェクトに変換しCalendar、1 日「ロールバック」します。このヘルパーメソッドのようなものは、ここから取得します:

public static void addDays(Date d, int days)
{
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.add(Calendar.DATE, days);
    d.setTime(c.getTime().getTime());
}

特定のケースでは、daysas-1を渡すだけで完了です。広範な日付固有の操作を行う場合は、タイムゾーン/ロケールを考慮してください。

于 2012-08-15T08:13:39.917 に答える
0

多くの人がすでに言っているように、日付ではなくカレンダーを使用してください。

本当に日付を使用したい場合:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -24);
cal.getTime();//returns a Date object

Calendar cal1 = Calendar.getInstance();
cal1.add(Calendar.DAY_OF_MONTH, -1);
cal1.getTime();//returns a Date object

これが役立つことを願っています。 トムレッド

于 2012-08-15T08:37:33.817 に答える
0

次の例を試して、前の日付に設定できます。

Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
System.out.println("Today's date is " +dateFormat.format(cal.getTime()));    
cal.add(Calendar.DATE, -1);  
System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime()));
于 2012-08-15T08:15:35.793 に答える
0
you can try the follwing code:
Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Today's date is "+dateFormat.format(cal.getTime()));

cal.add(Calendar.DATE, -1);
System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime())); 
于 2012-08-15T08:21:24.237 に答える