2015-06-19 18 views

risposta

7

Basta sottrarre 31 giorni. Per esempio:

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

Per ottenere la data corrente, è possibile utilizzare:

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

o

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

Oppure si può decidere di creare il proprio rappresentazione "orologio", che è in grado di darti l'attuale Instant, nel qual caso useresti:

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

(che consente di utilizzare l'iniezione di dipendenza per scrivere unit test più semplici con un orologio falso.)

+0

Grazie Jon Skeet! –

3

Si può provare questo:

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

o in altro modo si può provare:

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

Grazie Krishanthy Mohanachandran! –

1

È possibile utilizzare l'API JODA se lo si desidera, le sue funzionalità molto avanzate e utili:

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

uscita: Data attuale: 19/06/2015

Data 31 giorni fa: 19/05/2015

Problemi correlati