2011-10-05 32 views
5
 Calendar calendar = Calendar.getInstance(); 
    calendar.set(calendar.HOUR, 8); 
    calendar.set(calendar.MINUTE, 45); 
    calendar.set(calendar.SECOND, 00); 

    Date d = calendar.getTime(); 

    System.out.println(d); 

Output là: Wed ngày 05 tháng 10 20:45:00 BST 2011Ngày d = Calendar.getTime() trả về thời gian sai?

bất cứ ai có thể giúp tôi với tại sao điều này là gì?

+0

Bạn mong đợi kết quả như thế nào. – Raedwald

Trả lời

9

Calendar.HOUR được sử dụng để đặt giờ như được đặt trên đồng hồ 12 giờ.

Nói cách khác, bạn làm đặt Calendar đến 20:45. Đó là 8:45 PM.

Sử dụng Calendar.HOUR_OF_DAY để đặt giá trị 24 giờ.

9

Chắc chắn - bạn đang đặt Calendar.HOUR đại diện cho 1-12 "giờ nửa ngày". Bạn nên sử dụng HOUR_OF_DAY mà là giá trị 0-23 cho cả ngày:

calendar.set(Calendar.HOUR_OF_DAY, 8); 

Ngoài ra, sử dụng Joda Time mà là một API ngày/giờ đẹp hơn nhiều :)

Là một sang một bên, xin không đề cập đến các thành viên tĩnh thông qua tài liệu tham khảo ... nó sẽ dẫn đến đau khi bạn gọi someOtherThread.sleep(...) và chủ đề hiện tại của bạn ngủ ...

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