util pasar fecha convertir convert change java date datetime java-8 simpledateformat

fecha - pasar de string a date java



¿Cómo convertir un instantáneo a un formato de fecha? (4)

Esta pregunta ya tiene una respuesta aquí:

Puedo convertir un java.util.Date a un java.time.Instant (Java 8 y posterior) de esta manera:

Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 8); cal.set(Calendar.MINUTE, 30); Date startTime = cal.getTime(); Instant i = startTime.toInstant();

¿Alguien puede informarme sobre la conversión de ese instante a la fecha con un formato de fecha y hora específico? es decir, 2015-06-02 8:30:00

He pasado por la API pero no pude encontrar una respuesta satisfactoria.


Si desea convertir un Instant en una Date :

Date myDate = Date.from(instant);

Y luego puede usar SimpleDateFormat para la parte de formato de su pregunta:

SimpleDateFormat formatter = new SimpleDateFormat("dd MM yyyy HH:mm:ss"); String formattedDate = formatter.format(myDate);


Un instante es lo que dice: un instante específico en el tiempo, no tiene la noción de fecha y hora (la hora en Nueva York y Tokio no es la misma en un instante dado).

Para imprimirlo como fecha / hora, primero debe decidir qué zona horaria usar. Por ejemplo:

System.out.println(LocalDateTime.ofInstant(i, ZoneOffset.UTC));

Esto imprimirá la fecha / hora en formato iso: 2015-06-02T10:15:02.325

Si desea un formato diferente, puede usar un formateador:

LocalDateTime datetime = LocalDateTime.ofInstant(i, ZoneOffset.UTC); String formatted = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss").format(datetime); System.out.println(formatted);


intente analizar y formatear

Tome un ejemplo de análisis

String input = ...; try { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d yyyy"); LocalDate date = LocalDate.parse(input, formatter); System.out.printf("%s%n", date); } catch (DateTimeParseException exc) { System.out.printf("%s is not parsable!%n", input); throw exc; // Rethrow the exception. }

Formateo

ZoneId leavingZone = ...; ZonedDateTime departure = ...; try { DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM d yyyy hh:mm a"); String out = departure.format(format); System.out.printf("LEAVING: %s (%s)%n", out, leavingZone); } catch (DateTimeException exc) { System.out.printf("%s can''t be formatted!%n", departure); throw exc; }

El resultado de este ejemplo, que imprime tanto la hora de llegada como la de salida, es el siguiente:

LEAVING: Jul 20 2013 07:30 PM (America/Los_Angeles) ARRIVING: Jul 21 2013 10:20 PM (Asia/Tokyo)

Para obtener más detalles, consulte esta página: https://docs.oracle.com/javase/tutorial/datetime/iso/format.html