Tl;dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
L'approche moderne utilise les classes java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Notez comment nous spécifions un Locale
comme Locale.CANADA_FRENCH
pour déterminer la langue humaine utilisée pour traduire le nom du jour.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
À propos, vous serez peut-être intéressé par la norme Semaine ISO 8601 schéma de numérotation : yyyy-Www-d
.
2018-W01-2
La semaine n° 1 est le premier jeudi de l'année civile. La semaine commence le lundi. Une année compte soit 52, soit 53 semaines. Les derniers/premiers jours d'une année civile peuvent se situer dans l'année suivante/précédente basée sur la semaine.
Le chiffre unique à la fin est le jour de la semaine, 1-7 pour lundi-dimanche.
Ajouter le Trois-Dix-Extra à votre projet pour la classe de bibliothèque YearWeek
classe.
À propos de java.time
Le site java.time est intégré à Java 8 et aux versions ultérieures. Ces classes remplacent les anciennes classes héritage les classes de date et d'heure telles que java.util.Date
, Calendar
, & SimpleDateFormat
.
Le site Joda-Time Le projet, actuellement en mode de maintenance conseille de migrer vers le java.time classes.
Pour en savoir plus, consultez le Tutoriel Oracle . Et recherchez sur Stack Overflow de nombreux exemples et explications. La spécification est JSR 310 .
Où obtenir les classes java.time ?
-
Java SE 8 , Java SE 9 et plus tard
- Intégré.
- Fait partie de l'API Java standard avec une mise en œuvre groupée.
- Java 9 ajoute quelques fonctionnalités et corrections mineures.
-
Java SE 6 y Java SE 7
- Une grande partie de la fonctionnalité java.time est rétroportée vers Java 6 & 7 dans Trois Dix-Backport .
-
Android
- Les versions ultérieures d'Android regroupent les implémentations des classes java.time.
- Pour les versions antérieures d'Android, le ThreeTenABP le projet s'adapte Trois Dix-Backport (mentionné ci-dessus). Voir Comment utiliser ThreeTenABP .
Le site Trois-Dix-Extra Le projet étend java.time avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels ajouts futurs à java.time. Vous pouvez y trouver des classes utiles telles que Interval
, YearWeek
, YearQuarter
et plus .