Quiero convertir String
a Date
diferentes formatos.
Por ejemplo,
Estoy recibiendo del usuario,
String fromDate = "19/05/2009"; // i.e. (dd/MM/yyyy) format
Quiero convertir esto fromDate
como 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
Date
formato?parse
y no continúeformat
.parse
analiza una cadena a una fecha.parse
me dadate format
comoFri Jan 06 00:01:00 EST 2012
pero necesita en2012-01-06
formato 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.Calendar
yjava.text.SimpleDateFormat
ahora 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.Date
ySimpleDateFormat
se ha quedado desfasado.LocalDate
La forma moderna de hacer fecha y hora es trabajar con las clases java.time, específicamente
LocalDate
. LaLocalDate
clase 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
DateTimeFormatter
clase.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
SimpleDateFormat
clase: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.SimpleDateFormat
describa todo lo que necesita.fuente
Si bien de
SimpleDateFormat
hecho 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
Date
objeto no tiene formato , es una representación. La fecha puede ser presentado por unaString
con 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
SimpleDateFormat
Prueba esto,
Esto produce: 2009-05-19
fuente
Suponga que tiene una cadena como esta:
Ahora queremos cambiar este
String
formato por fecha y hora por separado en Java y Kotlin .JAVA:
tenemos un método para extraer la fecha :
Return
es esto: 17/09/2019Y tenemos un método para extraer el tiempo :
Return
es esto: 10:56 AMKOTLIN:
tenemos una función para extraer la fecha :
Return
es esto: 17/09/2019Y tenemos un método para extraer el tiempo :
Return
es esto: 10:56 AMfuente
SimpleDateFormat
clase 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
. TampocoSimpleDateFormat
puede analizar correctamente 6 decimales en los segundos (microsegundos).10:56 AM
lo que dice que debería, sino11:09 AM
(probado en Oracle jdk-11.0.3).DateTimeFormatter
necesitamosminsdk 26
o superior, entonces no es bueno10:56 AM