tl; dr
LocalDate.now(ZoneId.of("America/Montreal"))
.plusDays(30)
dettagli
Molto più facile ora con le moderne classi java.time che soppianta le vecchie classi Calendar
& Date
.
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.
Specificare un proper time zone name nel formato continent/region
, come ad esempio America/Montreal
, Africa/Casablanca
o Pacific/Auckland
. Non utilizzare mai l'abbreviazione di 3-4 lettere come EST
o IST
poiché sono non fusi orari reali, non standardizzati e nemmeno univoci (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
È possibile aggiungere un numero di giorni a quello.
LocalDate later = today.plusDays(30);
Period
Si può rappresentare un lasso di tempo con la classe Period
.
Period thirtyDays = Period.ofDays(30);
È possibile eseguire data la matematica chiamando plus
o minus
metodi.
LocalDate later = today.plus(thirtyDays);
su Java.tempo
Il framework java.time è integrato in Java 8 e versioni successive. Queste classi soppiantare classi legacy date-time vecchi fastidiose come java.util.Date
, Calendar
, & SimpleDateFormat
.
Il progetto Joda-Time, ora in maintenance mode, consiglia la migrazione alle classi 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.
Il codice implica che tutti i mesi hanno 30 giorni. – whiskeysierra