2012-06-07 28 views
12

Tôi tự hỏi, tại sao một số enums bị thiếu trong lớp TimeUnit của Java?Java: tại sao TimeUnit có thiếu enums?

Trên thực tế các TIMEUNIT max là DAY trong khi tôi muốn sử dụng công cụ như WEEK, YEAR ...

+0

Giới hạn ở đâu? Còn về pháo đài thì sao? Jubilees? Zettaseconds? –

+1

Cũng cho rằng một năm không phải là không đổi, nó sẽ không phù hợp. Vì việc sử dụng tài liệu của lớp được sử dụng để thông báo các phương thức dựa trên thời gian, nên bất cứ điều gì vượt quá một ngày có lẽ là không hợp lý cho mục đích sử dụng. –

Trả lời

15

Các TimeUnit.DAYS liên tục đại diện cho một khoảng thời gian 24 giờ, không phải là một ngày dương lịch (nửa đêm đến nửa đêm). Bất cứ điều gì ngoài một ngày (một tuần, một tháng, một năm) là một đơn vị lịch, không phải đơn vị thời gian. Thời gian của các đơn vị lịch phụ thuộc vào lịch sử dụng: ví dụ: một tuần có thể dài hơn hoặc ngắn hơn một giờ vào các tuần khi thời gian tiết kiệm ánh sáng ban ngày đi vào và ra hiệu lực, năm nhuận dài hơn một ngày, v.v. Đó là lý do tại sao bao gồm các đơn vị lịch vào số TimeUnit sẽ không có ý nghĩa.

+0

Tôi rất câm ... nhờ –

+1

Java 8 cung cấp [java.time.temporal.ChronoUnit] (https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoUnit. html) có thể hữu ích. –

Các vấn đề liên quan