tl; dr
LocalDate.parse(
"19/05/2009" ,
DateTimeFormatter.ofPattern("dd/MM/uuuu")
)
Detalles
Las otras respuestas con java.util.Date
, java.sql.Date
y SimpleDateFormat
son ahora obsoletos.
LocalDate
La forma moderna de hacer de fecha y hora es el trabajo con las clases java.time, específicamente LocalDate
. La clase LocalDate
representa un valor de solo fecha sin hora del día y sin zona horaria.
DateTimeFormatter
para analizar, o Generar, una cadena que representa un valor de fecha y hora, utilizar la clase DateTimeFormatter
.
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/uuuu");
LocalDate ld = LocalDate.parse("19/05/2009" , f);
No confundir un objeto de fecha y hora con una cadena que representa su valor. Un objeto de fecha y hora tiene no formato, mientras que un String sí lo hace. 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 haga el trabajo de localizar automáticamente.
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
See in action in IdeOne.com.
Sobre java.time
El marco java.time está incorporado en Java 8 y versiones posteriores. Estas clases suplantan a las viejas y problemáticas clases de fecha y hora legacy, como java.util.Date
, Calendar
, & SimpleDateFormat
. El proyecto Joda-Time, ahora en maintenance mode, recomienda la migración a java.time.
Para obtener más información, consulte el Oracle Tutorial. Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310.
¿Dónde obtener las clases java.time?
- Java SE 8 y SE 9 y más tarde
- incorporado.
- Parte de la API estándar de Java con una implementación integrada.
- Java 9 agrega algunas características menores y correcciones.
- Java SE 6 y SE 7
- Gran parte de la funcionalidad de back-java.time está portado a Java 6 & 7 en ThreeTen-Backport.
- Android
- El proyecto ThreeTenABP adapta ThreeTen-Backport (mencionado anteriormente) para Android específicamente.
- Ver How to use….
El proyecto se extiende ThreeTen-Extra java.time con clases adicionales. Este proyecto es un terreno de prueba para posibles adiciones futuras a java.time. Puede encontrar algunas clases útiles aquí, como Interval
, YearWeek
, YearQuarter
y more.
Un objeto de fecha no tiene formato, es solo un número que representa la fecha. La fecha se puede representar mediante una cadena con el formato "aaaa-MM-dd". –