重複の可能性:
Date を使用して昨日の日付を取得する
Java Dateオブジェクトの値を昨日に設定するエレガントな方法は何ですか?
24時間前に戻るということですか。
Date date = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000L);
または、同じ時刻に 1 日戻る (これは、夏時間に応じて 23 または 25 時間になる可能性があります)
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
夏時間のため、これらはまったく同じではありません。
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"));
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());
}
特定のケースでは、days
as-1
を渡すだけで完了です。広範な日付固有の操作を行う場合は、タイムゾーン/ロケールを考慮してください。
多くの人がすでに言っているように、日付ではなくカレンダーを使用してください。
本当に日付を使用したい場合:
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
これが役立つことを願っています。 トムレッド
次の例を試して、前の日付に設定できます。
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()));
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()));