tl; dr
LocalDateTime ldt = LocalDateTime.parse("2009-08-19 12:00:00".replace(" " , "T"));
java.time
Inne odpowiedzi są poprawne, ale użyć klas Date-Time starszych. Te kłopotliwe stare klasy zostały wyparte przez klasy java.time.
Twój ciąg wejściowy jest zbliżony do standardowego formatu ISO 8601. Skoryguj, zastępując SPACE w środku za pomocą T
. Następnie można go przeanalizować bez określania wzorca formatowania. Klasy java.time używają domyślnie normy ISO 8601 podczas analizowania/generowania ciągów znaków.
String input = "2009-08-19 12:00:00".replace(" " , "T");
Dane wejściowe nie zawierają informacji o offset-from-UTC lub strefie czasowej. Więc analizujemy jako LocalDateTime
.
LocalDateTime ldt = LocalDateTime.parse(input);
Jeśli z kontekstu znasz planowane przesunięcie, zastosuj je. Być może był on przeznaczony dla UTC (offset zero), gdzie możemy użyć stałej ZoneOffset.UTC
.
OffsetDateTime odt = ldt.atOffset(ZoneOffset.UTC);
A może wiesz, że była przeznaczona dla określonej strefy czasowej. Strefa czasowa to przesunięcie oraz zestaw reguł do obsługi anomalii, takich jak czas letni (DST).
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Montreal"));
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują stare, kłopotliwe klasy czasu i daty, takie jak java.util.Date
, .Calendar
, java.text.SimpleDateFormat
.
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień.
Znaczna część funkcjonalności java.time powraca walcowy Java 6 & 7 w ThreeTen-Backport i ponadto dostosowany do Android w ThreeTenABP (patrz How to use…).
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time.
Chciałbym, aby ludzie przestali nazywać rzeczy "dziwacznymi" i "dziwnymi", gdy popełniały błędy. :/ – Bombe
Przepraszamy. Debugowałem kod napisany przez wiele lat mojego starszego i spodziewałem się, że będę mógł zaufać. –