Tengo Stringuna cita representativa.
String date_s = "2011-01-18 00:00:00.0";
Me gustaría convertirlo en a Datey mostrarlo en YYYY-MM-DDformato.
2011-01-18
¿Cómo puedo conseguir esto?
De acuerdo, según las respuestas que obtuve a continuación, aquí hay algo que he intentado:
String date_s = " 2011-01-18 00:00:00.0";
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss");
Date date = dt.parse(date_s);
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");
System.out.println(dt1.format(date));
Pero sale en 02011-00-1lugar de lo deseado 2011-01-18. ¿Qué estoy haciendo mal?
java
string
date
formatting
date-format
amit4444
fuente
fuente

Respuestas:
Use
LocalDateTime#parse()(oZonedDateTime#parse()si la cadena contiene una parte de zona horaria) para analizarStringun cierto patrón en unLocalDateTime.Use
LocalDateTime#format()(oZonedDateTime#format()) para formatear unLocalDateTimeaStringen un cierto patrón.O , cuando aún no está en Java 8, use
SimpleDateFormat#parse()para analizarStringun cierto patrón en unDate.Use
SimpleDateFormat#format()para formatear unDateaStringen un cierto patrón.Ver también:
Actualización : según su intento fallido: los patrones distinguen entre mayúsculas y minúsculas . Lea el
java.text.SimpleDateFormatjavadoc que significan las partes individuales. Así se destaca, por ejemplo,Mdurante meses ymminutos. Además, existen años de cuatro dígitosyyyy, no cincoyyyyy. Mire más de cerca los fragmentos de código que publiqué aquí arriba.fuente
El formato es SENSIBLE A LAS CASAS, así que USE MM para el mes, no mm (esto es para los minutos) y aaaa. Para referencia , puede usar la siguiente hoja de referencia.
Ejemplos:
fuente
La respuesta es, por supuesto, crear un objeto SimpleDateFormat y usarlo para analizar cadenas hasta la fecha y formatear fechas en cadenas. Si probó SimpleDateFormat y no funcionó, muestre su código y cualquier error que pueda recibir.
Anexo: "mm" en el formato Cadena no es lo mismo que "MM". Use MM por meses y mm por minutos. Además, aaaa no es lo mismo que aaaa. p.ej,:
fuente
hhle dará la hora en el rango 1-12, deberá usaraademás de imprimir / analizarAMoPM. Para imprimir / analizar la hora en el rango 0-23, useHH.¿Por qué no simplemente usar esto?
Además, esta es la otra manera:
o
¡Salud!
fuente
Usando el
java.timepaquete en Java 8 y posterior:fuente
[editado para incluir las correcciones de BalusC] La clase SimpleDateFormat debería hacer el truco:
fuente
DDsignifica "día en año", no "día en mes".hhsignifica "hora en am / pm (1-12)", no "hora en día (0-23)".Otras respuestas son correctas, básicamente tenía el número incorrecto de caracteres "y" en su patrón.
Zona horaria
Sin embargo, un problema más ... No abordó las zonas horarias. Si pretendías UTC , entonces debería haberlo dicho. Si no, las respuestas no están completas. Si todo lo que desea es la parte de la fecha sin la hora, entonces no hay problema. Pero si realiza más trabajo que puede implicar tiempo, entonces debe especificar una zona horaria.
Joda-Time
Aquí está el mismo tipo de código pero usando la biblioteca Joda-Time 2.3 de código abierto de terceros
Cuando corres ...
fuente
Consulte "Patrones de fecha y hora" aquí. http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
fuente
fuente
fuente
fuente
Solo puedes usar:
Funciona perfectamente!
fuente
También puedes usar substring ()
Si desea un espacio delante de la fecha, use
fuente
Puede probar Java 8 nuevo
date, puede encontrar más información en la documentación de Oracle .O puedes probar el viejo
fuente
fuente
eliminar una forma y
SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");debe serSimpleDateFormat dt1 = new SimpleDateFormat("yyyy-mm-dd");fuente
DateTimeFormattero se aferra a lo anticuadoSimpleDateFormat).SimpleDateFormat dt1 = new SimpleDateFormat ("aaaa-mm-dd");
fuente
DateTimeFormatteryDateTimeFormatterBuilder. SugerirSimpleDateFormaten 2019 es un mal consejo.hhes por hora.Digamos que desea cambiar 2019-12-20 10:50 AM GMT + 6: 00 a 2019-12-20 10:50 AM primero que nada tiene que entender el formato de fecha primero el formato de fecha es aaaa-MM-dd hh : mm a zzz y el segundo formato de fecha será aaaa-MM-dd hh: mm a
solo devuelve una cadena de esta función como.
Esta función le devolverá su respuesta de deseo. Si desea personalizar más, simplemente agregue o elimine el componente del formato de fecha.
fuente