tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
Cách tiếp cận hiện đại sử dụng các lớp java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Lưu ý cách chúng tôi chỉ định một Locale
ví dụ như Locale.CANADA_FRENCH
để xác định ngôn ngữ của con người được sử dụng để dịch tên của ngày.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
Nhân tiện, bạn có thể quan tâm đến sơ đồ đánh số tuần theo tiêu chuẩn ISO 8601 : yyyy-Www-d
.
2018-W01-2
Tuần # 1 có thứ Năm đầu tiên của năm dương lịch. Tuần bắt đầu vào thứ Hai. Một năm có 52 hoặc 53 tuần. Những ngày cuối cùng / đầu tiên của một năm dương lịch có thể hạ cánh trong năm tiếp theo / tuần trước.
Chữ số duy nhất ở cuối là ngày trong tuần, 1-7 cho Thứ Hai-Chủ Nhật.
Thêm lớp thư viện ThreeTen-Extra vào dự án của bạn cho YearWeek
lớp.
Giới thiệu về java.time
Các java.time khung được xây dựng vào Java 8 và sau đó. Những lớp học thay thế cái cũ phiền hà di sản lớp học ngày thời gian như java.util.Date
, Calendar
, & SimpleDateFormat
.
Các Joda thời gian dự án, bây giờ trong chế độ bảo trì , khuyên chuyển đổi sang các java.time lớp.
Để tìm hiểu thêm, xem Hướng dẫn Oracle . Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích. Đặc điểm kỹ thuật là JSR 310 .
Nơi để có được các lớp java.time?
Các ThreeTen-Extra dự án 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 các bổ sung có thể trong tương lai cho java.time. Bạn có thể tìm thấy một số các lớp học hữu ích ở đây chẳng hạn như Interval
, YearWeek
, YearQuarter
, và nhiều hơn nữa .
dd
như định dạng?