tl; dr
java.time.LocalDateTime.parse(
"04/02/2011 20:27:05" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" )
)
java.time
Nowoczesne podejście wykorzystuje klasy java.time, które zastępują czcigodny projekt Joda-Time .
Analizuj jako a, LocalDateTime
ponieważ w danych wejściowych brakuje jakiegokolwiek wskaźnika strefy czasowej lub przesunięcia względem UTC.
String input = "04/02/2011 20:27:05" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" ) ;
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
ldt.toString (): 2011-02-04T20: 27: 05
Wskazówka: tam, gdzie to możliwe, użyj standardu ISO 8601 formatów , wymieniając wartości daty i godziny jako tekst, a nie format tutaj widoczny. Dogodnie, klasy java.time używają standardowych formatów podczas parsowania / generowania ciągów.
O java.time
Środowisko java.time jest wbudowane w Javę 8 i nowsze wersje . Klasy te kłopotliwe zastąpić stary starszych klas Date-Time, takich jak java.util.Date
, Calendar
, iSimpleDateFormat
.
Projekt Joda-Time , teraz w trybie konserwacji , zaleca migrację do java.time klas .
Aby dowiedzieć się więcej, zobacz samouczek Oracle . I przeszukaj stos przepełnienia dla wielu przykładów i wyjaśnień. Specyfikacja to JSR 310 .
Gdzie można uzyskać klasy java.time?
Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem doświadczalnym dla ewentualnych przyszłych dodatków do java.time. Można znaleźć kilka przydatnych klas tutaj takie jak Interval
, YearWeek
, YearQuarter
, i więcej .
java.time
pakietu w Javie 8, spróbuj użyćLocalDateTime.parse
lubInstant.parse
.