Come si formatta uno javax.time.Instant
come stringa nel fuso orario locale? Quanto segue traduce uno Instant
locale a UTC, non al fuso orario locale come mi aspettavo. La rimozione della chiamata a toLocalDateTime()
fa lo stesso. Come posso ottenere l'ora locale invece?Come si formatta un javax.time.Instant come una stringa nel fuso orario locale?
public String getDateTimeString(final Instant instant)
{
checkNotNull(instant);
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendPattern("yyyyMMddHHmmss").toFormatter();
return formatter.print(ZonedDateTime.ofInstant(instant, TimeZone.UTC).toLocalDateTime());
}
Nota: Stiamo usando la versione precedente 0.6.3 dell'attuazione JSR-310 di riferimento.
Non vedo davvero la necessità di ricorrere a questo vecchio approccio. –
@ SimonAndréForsberg: Sfortunatamente dovevo perché stavamo usando 0.6.3 dell'implementazione di riferimento JSR-310. Fortunatamente, sebbene il nostro prodotto utilizzi ancora Java 7, da allora siamo passati all'ultima JSR-310 che appare in Java 8. –
Date ha anche un metodo per questo, Date.from (istantaneo). Nwm, guarda la tua strana versione ora – softarn