@JigarJoshi đó là câu trả lời tốt, và tất nhiên cũng khuyến nghị @Tim sử dụng. Joda thời gian .
Tôi chỉ muốn thêm nhiều khả năng để trừ ngày từ a java.util.Date.
Thông tin chung
Một khả năng là sử dụng apache-commons-lang . Bạn có thể làm điều đó bằng cách sử dụng DateUtilsnhư sau:
Date dateBefore30Days = DateUtils.addDays(new Date(),-30);
Tất nhiên, thêm commons-langphụ thuộc để chỉ trừ ngày có lẽ không phải là một lựa chọn tốt, tuy nhiên nếu bạn đang sử dụng commons-langthì đó là một lựa chọn tốt. Ngoài ra còn có phương pháp thuận tiện để addYears, addMonths, addWeeksvà như vậy, hãy nhìn vào các api đây .
Java 8
Một khả năng khác là tận dụng lợi thế mới LocalDatetừ Java 8 bằng minusDays(long days)phương thức:
LocalDate dateBefore30Days = LocalDate.now(ZoneId.of("Europe/Paris")).minusDays(30);