Jak sformatować javax.time.Instant
jako ciąg w lokalnej strefie czasowej? Następujące tłumaczenie lokalny Instant
do UTC, a nie do lokalnej strefy czasowej, jak się spodziewałem. Usunięcie połączenia z numerem toLocalDateTime()
powoduje to samo. Jak mogę zamiast tego uzyskać czas lokalny?Jak sformatować plik javax.time.Instant jako ciąg w lokalnej strefie czasowej?
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());
}
Uwaga: Używamy starszą wersję 0.6.3 realizacji JSR-310 odniesienia.
Naprawdę nie widzę potrzeby uciekania się do tego starego podejścia. –
@ SimonAndréForsberg: Niestety musiałem, ponieważ używaliśmy 0.6.3 implementacji referencyjnej JSR-310. Na szczęście, mimo że nasz produkt nadal używa Java 7, od tego czasu przeszliśmy do najnowszego JSR-310, który pojawia się w Javie 8. –
Data ma również metodę, Date.from (instant). Nwm, Zobacz swoją dziwną wersję teraz – softarn