Tengo String
una cita representativa.
String date_s = "2011-01-18 00:00:00.0";
Me gustaría convertirlo en a Date
y mostrarlo en YYYY-MM-DD
formato.
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-1
lugar 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 analizarString
un cierto patrón en unLocalDateTime
.Use
LocalDateTime#format()
(oZonedDateTime#format()
) para formatear unLocalDateTime
aString
en un cierto patrón.O , cuando aún no está en Java 8, use
SimpleDateFormat#parse()
para analizarString
un cierto patrón en unDate
.Use
SimpleDateFormat#format()
para formatear unDate
aString
en 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.SimpleDateFormat
javadoc que significan las partes individuales. Así se destaca, por ejemplo,M
durante meses ym
minutos. 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
hh
le dará la hora en el rango 1-12, deberá usara
además de imprimir / analizarAM
oPM
. 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.time
paquete en Java 8 y posterior:fuente
[editado para incluir las correcciones de BalusC] La clase SimpleDateFormat debería hacer el truco:
fuente
DD
significa "día en año", no "día en mes".hh
significa "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
DateTimeFormatter
o se aferra a lo anticuadoSimpleDateFormat
).SimpleDateFormat dt1 = new SimpleDateFormat ("aaaa-mm-dd");
fuente
DateTimeFormatter
yDateTimeFormatterBuilder
. SugerirSimpleDateFormat
en 2019 es un mal consejo.hh
es 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