tl; dr
ZonedDateTime.now()
.format(DateTimeFormatter.ofPattern("M/d/uuuu HH:mm"))
java.time
Nowoczesny sposób jest z klasami java.time że wyprzeć kłopotliwych klasy Date-Time stare dziedzictwo.
W klasie DateTimeFormatter
zdefiniuj wzór formatowania, używając kodów pojedynczych znaków dla miesiąca i/lub dnia miesiąca zamiast kodów dwuznakowych.
DateTimeFormatter f = DateTimeFormatter.ofPattern("M/d/uuuu HH:mm");
Pobierz aktualny moment.
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime zdt = ZonedDateTime.now(z);
Wygeneruj ciąg.
String output = zdt.format(f)
O java.time
Ramy java.time jest wbudowana w Java 8 i późniejszych. Te klasy zastępują kłopotliwe stare 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.Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i more.
Nie możesz po prostu odciąć wiodącego 0 podłańcuchem? A może chcesz bardziej eleganckiego rozwiązania? –