2014-10-23 18 views
6

Tôi thấy rằng Java 8 không có tương đương với ZonedDateTime nhưng chỉ hoạt động với Thời gian (một số ZonedTime lớp hoặc thứ gì đó tương tự). Tôi biết họ bao gồm các lớp học OffsetTime, nhưng nó chỉ lưu trữ bù đắp.Java 8, tại sao không phải là một lớp ZonedTime?

Lưu trữ múi giờ cùng với ngày và giờ, thay vì chỉ lưu trữ bù đắp, giúp giải quyết tiết kiệm ánh sáng ban ngày dễ dàng hơn.

Tôi không yêu cầu bạn đưa cho tôi lựa chọn thay thế, tôi biết có nhiều cách tiếp cận; Tôi chỉ tự hỏi tại sao lớp học đó không được đưa vào, đó có phải là vấn đề thiết kế không? hoặc họ chỉ thấy nó là thừa?

+0

Câu hỏi của bạn không có ý nghĩa. Bạn nói "Java 8 không có tương đương với ZonedDateTime" trong khi bao gồm một liên kết đến tài liệu Java 8 rất xác định rằng lớp ZonedDateTime được gói trong Java 8. –

+0

Tôi chấp nhận rằng có lẽ câu hỏi của tôi không được xây dựng tốt, nhưng tôi nghĩ nó vẫn hợp lệ. Tôi nghĩ rằng hầu hết mọi người đều có quan điểm. –

+0

Khi đọc lần thứ ba, có vẻ như nhiệm vụ của bạn là cho một lớp xác định giá trị theo thời gian chỉ trong ngày mà không có ngày nào được bù trừ từ UTC hoặc thậm chí là múi giờ. Khi [câu trả lời được chấp nhận bởi Meno Hochschild] (http://stackoverflow.com/a/26541249/642706) nói đúng, điều đó có vẻ giống như một ý tưởng hay nhưng có vấn đề. Các múi giờ và khoảng cách được xác định lại do chính trị và biên giới, Thời gian tiết kiệm ánh sáng ban ngày và các bất thường khác. Không có ngày, múi giờ không có ý nghĩa cụ thể. –

Trả lời

10

Giới thiệu một lớp ZonedTime bao gồm LocalTime và múi giờ (thay vì bù đắp đơn giản) sẽ là một sai lầm nặng nề.

Loại được đề xuất không chứa ngày. Nhưng không có một ngày, nó sẽ không thể đánh giá bù đắp múi giờ thực để ánh xạ thời gian cục bộ cho bất kỳ thời gian toàn cầu hợp lý nào. Để tính đến mọi khía cạnh tiết kiệm ánh sáng ban ngày, bạn phải có ngày và giờ.

+1

Tôi đã thực sự nghĩ về điều đó trước đây, nhưng tôi nghĩ nó sẽ hữu ích trong một số trường hợp. Dù sao, cảm ơn cho phản ứng. Tôi sẽ sử dụng nó, ví dụ, để lưu trữ thời gian của một lịch học; Tôi sẽ không thực hiện các chuyển đổi mà ngày quan trọng, tôi chỉ muốn biết thời gian lớp bắt đầu và kết thúc để hiển thị nó cho người dùng ở các phần khác của thế giới. –

+0

@JuanLhc Để hiển thị thời gian bắt đầu và kết thúc của lớp cho mọi người ở một nơi khác trên thế giới, bạn vẫn cần biết ngày tháng. Nếu không, sẽ không thể xác định được sự khác biệt về bù trừ, vì bạn không thể biết liệu thời gian mùa hè hoặc thời gian bù đắp mùa đông có được sử dụng hay không. – bowmore

+0

Bạn hoàn toàn đúng. Cám ơn phản hồi của bạn! –

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