我怎样才能得到31天前的日期?

时间:2015-06-19 07:59:18

标签: java jodatime

如何在x之前31天获得current_date

x(date)___________________________current_date
                       31 

3 个答案:

答案 0 :(得分:9)

只需减去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

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

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

(这允许您使用依赖注入来编写带有假时钟的更简单的单元测试。)

答案 1 :(得分:4)

你可以试试这个:

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);

答案 2 :(得分:1)

如果需要,您可以使用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);

输出: 现在日期:2015年6月19日

日期31天前:2015年5月19日