Wie formatiere ich eine javax.time.Instant
als Zeichenfolge in der lokalen Zeitzone? Das folgende übersetzt eine lokale Instant
zu UTC, nicht zu der lokalen Zeitzone, wie ich erwartet hatte. Das Entfernen des Anrufs zu toLocalDateTime()
macht das gleiche. Wie kann ich stattdessen die Ortszeit bekommen?Wie formatiere ich eine javax.time.Instant als Zeichenfolge in der lokalen Zeitzone?
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());
}
Hinweis: Wir verwenden die ältere Version 0.6.3 der JSR-310 Referenzimplementierung.
Ich sehe wirklich nicht die Notwendigkeit, auf diesen alten Ansatz zurückgreifen. –
@ SimonAndréForsberg: Leider musste ich, weil wir 0,6.3 der JSR-310-Referenzimplementierung verwendet haben. Obwohl unser Produkt immer noch Java 7 verwendet, haben wir uns seither auf den neuesten JSR-310, der in Java 8 erscheint, gewendet. –
Date hat auch eine Methode, Date.from (instant). Nwm, sehen Sie Ihre seltsame Version jetzt – softarn