tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" )
)
Detalles
Las otras respuestas con java.util.Date, java.sql.Datey SimpleDateFormatse ha quedado desfasado.
LocalDate
La forma moderna de hacer fecha y hora es trabajar con las clases java.time, específicamente LocalDate. La LocalDateclase representa un valor de solo fecha sin hora del día y sin zona horaria.
DateTimeFormatter
Para analizar o generar una cadena que represente un valor de fecha y hora, use la DateTimeFormatterclase.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" );
LocalDate ld = LocalDate.parse( "19/05/2009" , f );
No combine un objeto de fecha y hora con una cadena que represente su valor. Un objeto de fecha y hora no tiene formato , mientras que un String sí. Un objeto de fecha y hora, como LocalDate, puede generar una cadena para representar su valor interno, pero el objeto de fecha y hora y la cadena son objetos distintos separados.
Puede especificar cualquier formato personalizado para generar una cadena. O deje que java.time se encargue de la localización automática.
DateTimeFormatter f =
DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL )
.withLocale( Locale.CANADA_FRENCH ) ;
String output = ld.format( f );
Volcar a la consola.
System.out.println( "ld: " + ld + " | output: " + output );
ld: 2009-05-19 | salida: mardi 19 mai 2009
Véalo en acción en IdeOne.com .
Acerca de java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como java.util.Date, Calendar, y SimpleDateFormat.
El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .
Para obtener más información, consulte el tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
Puede intercambiar objetos java.time directamente con su base de datos. Utilice un controlador JDBC compatible con JDBC 4.2 o posterior. No se necesitan cuerdas, no se necesitan java.sql.*clases.
¿Dónde obtener las clases java.time?
- Java SE 8 , Java SE 9 y posterior
- Incorporado.
- Parte de la API estándar de Java con una implementación integrada.
- Java 9 agrega algunas funciones y correcciones menores.
- Java SE 6 y Java SE 7
- Gran parte de la funcionalidad de java.time está adaptada a Java 6 y 7 en ThreeTen-Backport .
- Androide
- Versiones posteriores de implementaciones de paquetes de Android de las clases java.time.
- Para anteriormente Android (<26), el ThreeTenABP proyecto adapta ThreeTen-Backport (mencionado anteriormente). Consulte Cómo utilizar ThreeTenABP… .
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Usted puede encontrar algunas clases útiles aquí, como Interval, YearWeek, YearQuarter, y más .