tl; dr
OffsetDateTime.parse("2011-10-06T12:00:00-08:00")
.format(
DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.US) // Or Locale.CANADA_FRENCH and such.
)
Oct 6, 2011
java.time
Cách tiếp cận hiện đại sử dụng java.time lớp mà thay thế các lớp học ngày thời gian di sản cũ phiền hà.
Chuỗi đầu vào của bạn ở định dạng tuân thủ tiêu chuẩn ISO 8106. Các lớp java.time sử dụng các định dạng chuẩn này theo mặc định khi phân tích cú pháp/tạo chuỗi. Vì vậy, không cần phải chỉ định một mẫu định dạng.
Phân tích cú pháp dưới dạng OffsetDateTime
vì chuỗi đầu vào của bạn bao gồm bù trừ từ UTC chứ không phải múi giờ.
OffsetDateTime odt = OffsetDateTime.parse("2011-10-06T12:00:00-08:00") ;
odt.toString(): 2011-10-06T12:00-08:00
Tạo một chuỗi trong định dạng mong muốn. Hãy để java.time tự động bản địa hóa chứ không phải là các mẫu định dạng mã cứng.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.US); // Or Locale.CANADA_FRENCH and such.
String output = odt.format(f);
output: Oct 6, 2011
Khi seralizing một giá trị ngày tháng thời gian dưới dạng văn bản, sử dụng tiêu chuẩn ISO 8601 định dạng chứ không phải là một định dạng cục bộ.
String output = odt.toLocalDate().toString() ;
2011-10-06
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 học ngày giờ legacy phiền hà cũ như java.util.Date
, Calendar
, & SimpleDateFormat
.
Dự án Joda-Time, hiện đang ở maintenance mode, khuyên di chuyển đến các lớp 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. Đặc điểm kỹ thuật là JSR 310.
Nơi lấy các lớp java.time?
Dự án mở rộng ThreeTen-Extra 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.
Tùy chọn 'X' là thứ tôi đang tìm kiếm. Tôi đã đọc tài liệu Java 6. Cảm ơn – Wade
Đối với phần còn lại, không java7, bạn có thể thử sử dụng 'javax.xml.bind.DatatypeConverter.parseDateTime (ngày)' và có thêm thông tin có thể tìm thấy tại đây trên blog này http://ta.cnci.org/java -log/236-conversion-date –