tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" )
)
Détails
Les autres réponses avec java.util.Date
, java.sql.Date
et SimpleDateFormat
sont maintenant dépassées.
LocalDate
La façon moderne de faire date-heure est de travailler avec les classes java.time, en particulier LocalDate
. La LocalDate
classe représente une valeur de date uniquement sans heure du jour et sans fuseau horaire.
DateTimeFormatter
Pour analyser ou générer une chaîne représentant une valeur date-heure, utilisez la DateTimeFormatter
classe.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
LocalDate ld = LocalDate.parse( "19/05/2009" , f );
Ne confondez pas un objet date-heure avec une chaîne représentant sa valeur. Un objet date-heure n'a pas de format , contrairement à une chaîne. Un objet date-heure, tel que LocalDate
, peut générer une chaîne pour représenter sa valeur interne, mais l'objet date-heure et la chaîne sont des objets distincts distincts.
Vous pouvez spécifier n'importe quel format personnalisé pour générer une chaîne. Ou laissez java.time faire le travail de localisation automatique.
DateTimeFormatter f =
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH ) ;
String output = ld.format( f );
Dump dans la console.
System.out.println( "ld: " + ld + " | output: " + output );
ld: 19/05/2009 | sortie: mardi 19 mai 2009
Voir en action sur IdeOne.com .
À propos de java.time
Le framework java.time est intégré à Java 8 et versions ultérieures. Ces classes supplantent les anciens gênants hérités des classes date-heure tels que java.util.Date
, Calendar
, et SimpleDateFormat
.
Le projet Joda-Time , désormais en mode maintenance , conseille la migration vers les classes java.time .
Pour en savoir plus, consultez le didacticiel Oracle . Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310 .
Vous pouvez échanger des objets java.time directement avec votre base de données. Utilisez un pilote JDBC compatible avec JDBC 4.2 ou version ultérieure. Pas besoin de chaînes, pas besoin de java.sql.*
classes.
Où obtenir les classes java.time?
- Java SE 8 , Java SE 9 et versions ultérieures
- 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 Java SE 7
- Une grande partie de la fonctionnalité java.time est rétroportée vers Java 6 et 7 dans ThreeTen-Backport .
- Android
- Versions ultérieures des implémentations de bundle Android des classes java.time.
- Pour les versions antérieures d'Android (<26), le projet ThreeTenABP adapte ThreeTen-Backport (mentionné ci-dessus). Voir Comment utiliser ThreeTenABP… .
Le projet ThreeTen-Extra étend java.time avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels futurs ajouts à java.time. Vous trouverez peut - être des classes utiles ici, comme Interval
, YearWeek
, YearQuarter
et plus .