我如何获得 31 天前的日期?

How do I get the date of 31 days ago?

我怎样才能得到 x,它应该比 current_date 早 31 天?

x(date)___________________________current_date
                       31 

只需减去 31 天。例如:

LocalDate current = new LocalDate(2015, 6, 19);
LocalDate x = current.minusDays(31); // 2015-05-19

获取当前日期,您可以使用:

LocalDate current = new LocalDate(); // Default time zone

LocalDate current = new LocalDate(zone); // Some specific zone

或者您可能想要创建自己的 "clock" 表示,它能够为您提供当前的 Instant,在这种情况下,您可以使用:

LocalDate current = clock.getCurrentInstant().toDateTime(zone).toLocalDate();

(这让您可以使用依赖注入来使用假时钟编写更简单的单元测试。)

你可以试试这个:

LocalDate current = new LocalDate();//Constructs an instance set to the current local time evaluated using ISO chronology in the default zone.
LocalDate x = current.minusDays(31);

或者你可以试试:

LocalDate current = LocalDate.now();//Obtains a LocalDate set to the current system millisecond time using ISOChronology in the default time zone
LocalDate x = current.minusDays(31);

如果需要,您可以使用 JODA API,它非常先进和有用的功能:

String DATE_PATTERN = "dd/MM/yyyy";
DateTimeFormatter formatter = DateTimeFormat.forPattern(DATE_PATTERN);
String systemDate = formatter.print(DateTime.now());
System.out.println("Current Date : " + systemDate);
String newDate = formatter.print(DateTime.now().minusDays(31));
System.out.println("Date 31 days ago : " + newDate);

输出: 当前日期:19/06/2015

31 天前的日期:19/05/2015