tl; dr
String output =
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.getDayOfWeek()
.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
java.time
Các lớp java.time được tích hợp trong Java 8 trở lên và được chuyển ngược sang Java 6 & 7 và Android bao gồm DayOfWeek
enum tiện dụng .
Các ngày được đánh số theo định nghĩa tiêu chuẩn ISO 8601, 1-7 cho Thứ Hai-Chủ Nhật.
DayOfWeek dow = DayOfWeek.of( 1 );
Enum này bao gồm getDisplayName
phương thức tạo một Chuỗi của tên đã dịch được bản địa hóa trong ngày.
Đối Locale
tượng chỉ định ngôn ngữ con người được sử dụng trong bản dịch và chỉ định các chuẩn mực văn hóa để quyết định các vấn đề như viết hoa và dấu câu.
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Để có được ngày hôm nay, hãy sử dụng LocalDate
lớp học. Lưu ý rằng múi giờ rất quan trọng vì đối với bất kỳ thời điểm cụ thể nào, ngày thay đổi trên toàn cầu.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );
DayOfWeek dow = today.getDayOfWeek();
String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ;
Hãy nhớ rằng ngôn ngữ không liên quan gì đến múi giờ. Hai vấn đề trực giao riêng biệt. Bạn có thể muốn một bản trình bày bằng tiếng Pháp về ngày giờ được khoanh vùng ở Ấn Độ ( Asia/Kolkata
).
Joda-Time
CẬP NHẬT: Dự án Joda-Time , hiện đang ở chế độ bảo trì , khuyên bạn nên chuyển sang các lớp java.time .
Các Joda thời gian thư viện cung cấp Locale
nội địa hóa tạo đà của các giá trị ngày thời gian.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime now = DateTime.now( zone );
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter formatterUnJourQuébécois = DateTimeFormat.forPattern( "EEEE" ).withLocale( locale );
String output = formatterUnJourQuébécois.print( now );
System.out.println("output: " + output );
đầu ra: samedi
Giới thiệu về java.time
Khung java.time được tích hợp sẵn trong Java 8 trở lên. 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, hãy xem Hướng dẫn Oracle . Và tìm kiếm Stack Overflow để có nhiều ví dụ và giải thích. Đặc điểm kỹ thuật là JSR 310 .
Lấy các lớp java.time ở đâu?
- Java SE 8 và SE 9 trở lên
- Được xây dựng trong.
- Một phần của API Java tiêu chuẩn với một triển khai đóng gói.
- Java 9 bổ sung một số tính năng nhỏ và các bản sửa lỗi.
- Java SE 6 và SE 7
- Phần lớn chức năng của java.time được chuyển ngược sang Java 6 & 7 trong ThreeTen-Backport .
- Android