tl; dr
ZonedDateTime.now()
.format(DateTimeFormatter.ofPattern("M/d/uuuu HH:mm"))
java.time
Cách hiện đại với các lớp java.time mà thay thế các lớp học ngày thời gian di sản cũ phiền hà.
Trong lớp DateTimeFormatter
, hãy xác định mẫu định dạng sử dụng các mã ký tự đơn cho mã tháng và/hoặc ngày trong tháng thay vì mã hai ký tự.
DateTimeFormatter f = DateTimeFormatter.ofPattern("M/d/uuuu HH:mm");
Lấy thời điểm hiện tại.
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime zdt = ZonedDateTime.now(z);
Tạo chuỗi.
String output = zdt.format(f)
Về java.time
Khung java.time được xây dựng vào Java 8 và sau đó. Các lớp này thay thế các lớp ngày giờ phiền hà cũ như java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
.
Dự án Joda-Time, hiện đang ở maintenance mode, khuyên di chuyển sang java.time.
Để tìm hiểu thêm, hãy xem Oracle Tutorial. Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích.
Hầu hết các chức năng java.time được back-chuyển đến Java 6 & 7 trong ThreeTen-Backport và tiếp tục thích nghi với Android trong ThreeTenABP (xem How to use…).
Dự án ThreeTen-Extra mở rộng java.time với các lớp bổ sung. Dự án này là một nền tảng chứng minh cho những bổ sung có thể có trong tương lai vào java.time.Bạn có thể tìm thấy một số lớp học hữu ích tại đây như Interval
, YearWeek
, YearQuarter
và more.
Nguồn
2016-10-01 21:16:48
Bạn không thể chỉ cắt bỏ số 0 dẫn đầu bằng chuỗi con? Hay bạn muốn một giải pháp thanh lịch hơn? –