Quiero convertir Stringa Datediferentes formatos.
Por ejemplo,
Estoy recibiendo del usuario,
String fromDate = "19/05/2009"; // i.e. (dd/MM/yyyy) format
Quiero convertir esto fromDatecomo un objeto de "yyyy-MM-dd"formato de fecha
¿Cómo puedo hacer esto?

Respuestas:
Échale un vistazo
SimpleDateFormat. El código es algo como esto:fuente
Dateformato?parsey no continúeformat.parseanaliza una cadena a una fecha.parseme dadate formatcomoFri Jan 06 00:01:00 EST 2012pero necesita en2012-01-06formato de fechaSystem.out.println(anyDateObject)al método toString () predeterminado, se llama que se dice que imprime en ese formato, por ejemploFri Jan 06 00:01:00 EST 2012. Debe anularlo para que se adapte a sus necesidades.java.util.Date,java.util.Calendaryjava.text.SimpleDateFormatahora son heredadas , suplantadas por las clases java.time integradas en Java 8 y Java 9. Consulte el tutorial de Oracle .tl; dr
Detalles
Las otras respuestas con
java.util.Date,java.sql.DateySimpleDateFormatse ha quedado desfasado.LocalDateLa forma moderna de hacer fecha y hora es trabajar con las clases java.time, específicamente
LocalDate. LaLocalDateclase representa un valor de solo fecha sin hora del día y sin zona horaria.DateTimeFormatterPara analizar o generar una cadena que represente un valor de fecha y hora, use la
DateTimeFormatterclase.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.
Volcar a la consola.
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, ySimpleDateFormat.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?
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 .fuente
Usa la
SimpleDateFormatclase:Uso:
Para mayor eficiencia, querrá almacenar sus formateadores en un mapa hash. El hashmap es un miembro estático de su clase util.
fuente
Convierta una fecha de cadena en java.sql.Date
fuente
Compruebe los javadocs para que
java.text.SimpleDateFormatdescriba todo lo que necesita.fuente
Si bien de
SimpleDateFormathecho funcionará para sus necesidades, también es posible que desee consultar Joda Time , que aparentemente es la base para la biblioteca Date renovada en Java 7. Aunque no la he usado mucho, no he escuchado nada más que cosas buenas. al respecto y si manipula extensamente las fechas en sus proyectos, probablemente valga la pena investigarlo.fuente
Forma sencilla de formatear una fecha y convertirla en una cadena
fuente
Un
Dateobjeto no tiene formato , es una representación. La fecha puede ser presentado por unaStringcon el formato que desee .Por ejemplo, "
yyyy-MM-dd", "yy-MMM-dd", "dd-MMM-yy" y etc.Para lograr esto, puede obtener el uso de
SimpleDateFormatPrueba esto,
Esto produce: 2009-05-19
fuente
Suponga que tiene una cadena como esta:
Ahora queremos cambiar este
Stringformato por fecha y hora por separado en Java y Kotlin .JAVA:
tenemos un método para extraer la fecha :
Returnes esto: 17/09/2019Y tenemos un método para extraer el tiempo :
Returnes esto: 10:56 AMKOTLIN:
tenemos una función para extraer la fecha :
Returnes esto: 17/09/2019Y tenemos un método para extraer el tiempo :
Returnes esto: 10:56 AMfuente
SimpleDateFormatclase obsoleta y notoriamente problemática . Al menos no como primera opción. Y no sin reserva alguna. Hoy tenemos mucho mejor enjava.time, la API moderna de fecha y hora de Java, y suDateTimeFormatter. TampocoSimpleDateFormatpuede analizar correctamente 6 decimales en los segundos (microsegundos).10:56 AMlo que dice que debería, sino11:09 AM(probado en Oracle jdk-11.0.3).DateTimeFormatternecesitamosminsdk 26o superior, entonces no es bueno10:56 AM