¿Cómo puedo convertir la fecha " Mon Jul 01 08:00:00 IST 2019
" de tipo cadena de ISODate " 2019-07-01T03:00:00.000Z
"?
Actualización: El uso de DateTimeFormat, introducido en java 8:
La idea es definir dos formatos: uno para el formato de entrada, y otro para el formato de salida. Análisis sintáctico con el formateador de entrada, a continuación, formatee con el formateador de salida.
Su formato de entrada parece bastante estándar, excepto el arrastre Z
. De todos modos, vamos a tratar con esto: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
. El arrastre Z
es la parte interesante. Por lo general, no hay datos de zona horaria aquí, al igual que -0700
. Por lo que el patrón sería ...Z,
decir, sin apóstrofes.
El formato de salida es mucho más simple: "dd-MM-yyyy"
. Presente a los pequeños y -s
.
Aquí está el código de ejemplo:
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd-MM-yyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse("2018-04-10T04:00:00.000Z", inputFormatter);
String formattedDate = outputFormatter.format(date);
System.out.println(formattedDate); // prints 10-04-2018
Respuesta original - con la API de edad SimpleDateFormat
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = inputFormat.parse("2018-04-10T04:00:00.000Z");
String formattedDate = outputFormat.format(date);
System.out.println(formattedDate); // prints 10-04-2018