2011-01-11 36 views
5

Điều này có thể sẽ là một câu hỏi ngớ ngẩn, nhưng tôi không hiểu hàm ngày tháng java. Dưới đây là một số mã:Câu hỏi đơn giản về java SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); 
Date s = sdf.parse(var); 
Calendar scal = java.util.GregorianCalendar.getInstance(); 
scal.setTime(s); 
Log.w("Time: ", Long.toString(s.getTime())); 

Nếu var = "10:00" tôi nhận được "64800000".

Nếu var = "11:00" tôi nhận được "68400000".

Nếu var = "12:00" tôi nhận được "28800000".

Nếu var = "13:00" tôi nhận được "75600000".

Nếu var = "14:00" tôi nhận được "79200000".

Nếu var = "00:00" tôi nhận được "28800000".

Có chuyện gì với 12:00? Tại sao, khi var = 12: 00 tôi có nhận được kết quả tương tự như khi nó là 00:00 không? Tất cả các kết quả khác có vẻ đúng. Tôi rõ ràng không hiểu chức năng ngày tháng java, nhưng tôi dường như không thể tìm thấy bất kỳ lời giải thích cho điều này bất cứ nơi nào. Điều này là screwing lên máy tính khoảng thời gian của tôi.

+0

Câu hỏi của bạn không rõ ràng đối với tôi. Bạn đang đặt var ở đâu? Vì bạn đang sử dụng hh: mm không phải là thời gian quân sự - nên có lẽ đó là lý do tại sao bạn nhận được 00 cho 12. – CoolBeans

Trả lời

12

Nếu bạn muốn sử dụng thời gian 24 tiếng đồng hồ, bạn cần phải sử dụng vốn định dạng HH:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
0

tôi nên đã sử dụng "H" thay vì "h". "h" là cho định dạng am/pm.

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