Cómo convertir la fecha del calendario al yyyy-MM-dd
formato.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Esto producirá inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Pero lo que necesito es 2012-09-26
. Mi propósito es comparar esta fecha con otra fecha en mi base de datos usando los criterios de Hibernate. Entonces necesito el objeto de fecha en yyyy-MM-dd
formato.
Date
ayyyy-MM-dd
o analizar una cadena deyyyy-MM-dd
unDate
valor ?? Para formatear la fecha, simplemente useformat1.format(date)
, para analizarla, useformat1.parse(someStringValueInTheCorrectFormat)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Respuestas:
Un Java
Date
es un contenedor para la cantidad de milisegundos desde el 1 de enero de 1970 a las 00:00:00 GMT.Cuando usa algo como
System.out.println(date)
, Java usaDate.toString()
para imprimir el contenido.La única forma de cambiarlo es anular
Date
y proporcionar su propia implementación deDate.toString()
. Ahora, antes de encender su IDE e intentar esto, no lo haría; solo complicará las cosas. Es mejor formatear la fecha al formato que desea usar (o mostrar).Java 8+
Antes de Java 8
Deberías estar haciendo uso del puerto de entrada ThreeTen
Lo siguiente se mantiene con fines históricos (como la respuesta original)
Lo que puedes hacer es formatear la fecha.
Estos son en realidad la misma fecha, representados de manera diferente.
fuente
Calendar
Calendar
Tu código está mal No hay punto de análisis de fecha y manténgalo como objeto Fecha.
Puede formatear el objeto de fecha del calendario cuando desee visualizarlo y mantenerlo como una cadena.
fuente
java.time
La respuesta de MadProgrammer es correcta, especialmente el consejo sobre Joda-Time . El sucesor de Joda-Time ahora está integrado en Java 8 como el nuevo paquete java.time . Aquí hay un código de ejemplo en Java 8.
Cuando se trabaja con fecha y hora (en oposición a la fecha local), la zona horaria es crítica. El día del mes depende de la zona horaria. Por ejemplo, la zona horaria de India es
+05:30
(cinco horas y media por delante de UTC), mientras que Francia está solo una hora por delante. Entonces, un momento en un nuevo día en India tiene una fecha, mientras que el mismo momento en Francia tiene la fecha de "ayer". Crear una salida de cadena que carece de información de zona horaria o desplazamiento es crear ambigüedad. Usted solicitó la salida AAAA-MM-DD, así que la proporcioné, pero no la recomiendo. En lugar deISO_LOCAL_DATE
haber usadoISO_DATE
para obtener esta salida:2014-02-25+05:30
Volcado a la consola ...
Cuando corres ...
Joda-Time
Código similar usando la biblioteca Joda-Time , el precursor de java.time.
ISO 8601
Por cierto, ese formato de su cadena de entrada es un formato estándar, uno de los varios formatos prácticos de cadena de fecha y hora definidos por ISO 8601 .
Tanto Joda-Time como java.time utilizan formatos ISO 8601 de forma predeterminada al analizar y generar representaciones de cadenas de varios valores de fecha y hora.
fuente
java.util.Date
el objeto no puede representar la fecha en formato personalizado , sino que debe usar elSimpleDateFormat.format
método que devuelvestring
.fuente
Para analizar un
java.util.Date
objeto, primero debe convertirlo a String con su propio formato.Pero creo que estás siendo redundante aquí.
fuente
Esto mostrará su fecha + 7 días en formato de mes, día y año en un panel de ventana JOption.
fuente
fuente
Encontré este código donde se compara la fecha en un formato para comparar con el campo de fecha en la base de datos ... puede ser esto podría ser útil para usted ...
Cuando convierte la cadena a la fecha usando simpledateformat, es difícil de comparar con el campo Fecha en bases de datos mysql.
Por lo tanto, convierta la fecha de la cadena de Java en el formato usando select STR_to_DATE ('yourdate', '% m /% d /% Y') -> en este formato, entonces obtendrá el formato de fecha exacta del campo de fecha mysql.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
fuente
fuente