tl; dr
LocalDate.now(ZoneId.of("America/Montreal"))
.minusDays(90)
java.time
altre risposte qui sono obsoleti. Il modo moderno è con le classi java.time.
LocalDate
La classe LocalDate
rappresenta un valore di data-solo senza tempo del giorno e senza fuso orario.
Un fuso orario è fondamentale per determinare una data. Per un dato momento, la data varia in tutto il mondo per zona. Ad esempio, pochi minuti dopo la mezzanotte in Paris France è un nuovo giorno mentre è ancora "ieri" in Montréal Québec.
ZoneId z = ZoneId.of("America/Montreal") ;
LocalDate today = LocalDate.now(z) ;
È quindi possibile aggiungere o sottrarre giorni.
LocalDate ago090 = today.minusDays(90) ;
LocalDate ago120 = today.minusDays(120) ;
LocalDate ago160 = today.minusDays(160) ;
per generare una stringa in formato standard ISO 8601 di AAAA-MM-DD, chiamare toString
. Per altri formati, cerca Overflow dello stack per la classe DateTimeFormatter
per vedere molti esempi e discussioni.
String output = ago120.toString() ;
Chi java.time
Il quadro java.time è costruito in Java 8 e versioni successive. Queste classi soppiantano le fastidiose classi data legacy come java.util.Date
, Calendar
, & SimpleDateFormat
.
Il progetto Joda-Time, ora in maintenance mode, consiglia la migrazione a java.time.
Per ulteriori informazioni, vedere Oracle Tutorial. E cerca Stack Overflow per molti esempi e spiegazioni. La specifica è JSR 310.
Dove ottenere le classi java.time?
- Java SE 8 e SE 9 e successivamente
- incorporato.
- Parte dell'API Java standard con un'implementazione in bundle.
- Java 9 aggiunge alcune funzionalità e correzioni minori.
- Java SE 6 e SE 7
- Molte delle funzionalità java.time è di back-porting per Java 6 .
- Android
Il progetto ThreeTen-Extra java.time prolunga con classi aggiuntive. Questo progetto è un terreno di prova per possibili aggiunte future a java.time. È possibile trovare alcune classi utili come Interval
, YearWeek
, YearQuarter
e more.
Puoi essere più specifico sugli errori e sul codice che li ha prodotti? – ObscureRobot
possibile duplicato di [Come sottrarre X giorni da una data utilizzando il calendario Java?] (Http://stackoverflow.com/questions/212321/how-to-subtract-x-days-from-a-date-using-java -calendar) –