Java 8 có một thư viện hoàn toàn mới về ngày và thời gian trong gói java.time, đây là điều rất đáng hoan nghênh cho bất kỳ ai đã phải sử dụng JodaTime trước đây hoặc gặp rắc rối với việc tạo các phương thức trợ giúp xử lý ngày của riêng nó. Nhiều lớp trong gói này đại diện cho dấu thời gian và có các phương thức trợ giúp như getHour()
lấy giờ từ dấu thời gian, getMinute()
để lấy phút từ dấu thời gian, getNano()
để lấy nanos từ dấu thời gian, v.v ...
Tôi nhận thấy rằng họ không có một phương pháp nào được gọi là getMillis()
lấy một phần triệu dấu thời gian. Thay vào đó người ta sẽ phải gọi phương thức get(ChronoField.MILLI_OF_SECOND)
. Đối với tôi nó có vẻ như một sự không nhất quán trong thư viện. Có ai biết tại sao một phương thức như vậy bị thiếu hay không, vì Java 8 vẫn đang được phát triển nên có khả năng nó sẽ được thêm vào sau không?
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
Các lớp được định nghĩa ở đây đại diện cho các khái niệm thời gian chính, bao gồm thời gian, thời lượng, ngày, thời gian, múi giờ và thời gian. Chúng dựa trên hệ thống lịch ISO, đây là lịch thế giới thực tế theo các quy tắc Gregorian phổ biến. Tất cả các lớp là bất biến và an toàn chủ đề.
Mỗi phiên bản thời gian ngày bao gồm các trường được API cung cấp một cách thuận tiện. Để truy cập cấp thấp hơn vào các trường tham khảo
java.time.temporal
gói. Mỗi lớp bao gồm hỗ trợ in và phân tích cú pháp tất cả các ngày và thời gian. Tham khảojava.time.format
gói cho các tùy chọn tùy chỉnh ...
Ví dụ về loại lớp học này:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
Thời gian ngày không có múi giờ trong hệ thống lịch ISO-8601, chẳng hạn như 2007-12-03T10: 15: 30.
LocalDateTime
là một đối tượng thời gian ngày bất biến đại diện cho thời gian ngày, thường được xem là năm-tháng-ngày-giờ-phút-giây. Các trường ngày và giờ khác, chẳng hạn như ngày trong năm, ngày trong tuần và tuần, cũng có thể được truy cập. Thời gian được biểu diễn cho độ chính xác nano giây. Ví dụ: giá trị "ngày 2 tháng 10 năm 2007 lúc 13: 45.30.123456789" có thể được lưu trữ trongLocalDateTime
...
Instant
lớp học
get()
, thay vì đặt cho chúng các tên riêng lẻ. Nếu nó làm phiền bạn, hãy viết một lớp kế thừa lớp gốc và đặtgetMillis()
phương thức của riêng bạn vào lớp mới.