tl; dr
LocalDate.now(ZoneId.of("America/Montreal"))
.plusDays(30)
Détails
beaucoup plus facile maintenant avec les classes java.time modernes qui supplante les anciennes classes Calendar
& Date
.
LocalDate
La classe LocalDate
représente une valeur de date uniquement, sans temps de jour et sans fuseau horaire.
Un fuseau horaire est cruciale pour déterminer une date. Pour un moment donné, la date varie autour du globe par zone. Par exemple, quelques minutes après minuit dans Paris France est un nouveau jour alors qu'encore "hier" dans Montréal Québec.
Spécifiez un proper time zone name dans le format de continent/region
, tels que America/Montreal
, Africa/Casablanca
ou Pacific/Auckland
. Ne jamais utiliser l'abréviation 3-4 lettres telles que EST
ou IST
car ils sont pas fuseaux horaires vrai, non standardisé, et même pas uniques (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
Vous pouvez ajouter un nombre de jours à cela.
LocalDate later = today.plusDays(30);
Period
Vous pouvez représenter un laps de temps avec la classe Period
.
Period thirtyDays = Period.ofDays(30);
Vous pouvez effectuer des calculs de date en appelant plus
ou minus
méthodes.
LocalDate later = today.plus(thirtyDays);
A propos de java.heure
Le cadre java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les classes date de temps anciens legacy gênants tels que java.util.Date
, Calendar
, & SimpleDateFormat
. Le projet Joda-Time, maintenant en maintenance mode, conseille la migration vers les classes java.time.
Pour en savoir plus, voir le Oracle Tutorial. Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310.
Où obtenir les classes java.time?
- Java SE 8 et SE 9 et plus tard
- intégré.
- Partie de l'API Java standard avec une implémentation groupée.
- Java 9 ajoute quelques fonctionnalités et corrections mineures.
- Java SE 6 et SE 7
- Une grande partie de la fonctionnalité de java.time est de retour à Java 6 Ported .
- Android
Le projet ThreeTen-Extra java.time étend avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels ajouts futurs à java.time. Vous pouvez trouver ici des classes utiles telles que Interval
, YearWeek
, YearQuarter
et more.
Votre code implique que tous les mois ont 30 jours. – whiskeysierra