2013-10-12 27 views
9

Tôi đang sử dụng thư viện java PrettyTime để có nhiều xử lý ngày/giờ khác nhau trong ứng dụng java của tôi, chẳng hạn như chuyển đổi định dạng ngày/chuỗi ngày định dạng MySQL thành ngày java hoặc ngược lại.Làm thế nào để chuyển đổi các đối tượng java.util.Date thành các đối tượng Lịch?

Tuy nhiên, tôi thấy rằng date.getYear(), date.getMonth(), v.v., tất cả đều không được dùng nữa và thay vào đó nó sử dụng Lịch. Nhưng PrettyTime chỉ trả về kết quả của nó như là các đối tượng Date, và tôi không thấy cách nào để chuyển đổi các đối tượng Date thành các đối tượng lịch.

Trong tài liệu cho Calendar, đề cập duy nhất tôi thấy là Date là phương pháp setTime(Date date), nhưng tên phương pháp là không xác định và tài liệu không rõ ràng về phương pháp này thực sự thực hiện. Rõ ràng là tôi không thể chỉ làm calendar.set(date.getYear(), date.getMonth(), ..) v.v. vì những phương pháp này của Date không còn được dùng nữa.

Vậy làm cách nào để chuyển đổi một đối tượng Ngày cụ thể thành Lịch?

+1

'Lịch lịch = ...; calendar.setTime (someDateObject); 'đơn giản như vậy –

+0

Hoặc nhận thời gian theo millis. –

+1

Các bạn dường như gõ nhanh hơn tôi một chút. –

Trả lời

8
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Bạn cũng có thể nhận lịch ở các ngôn ngữ khác nhau nếu muốn.

Bạn cũng có thể làm

cal.setTimeInMillis(date.getTime()); 
+2

Cảm ơn, tôi muốn phương pháp 'setTime' không được đặt tên như vậy một cách phi thường hoặc có tài liệu rõ ràng hơn, vì vậy tôi sẽ không phải hỏi điều này. –

+0

Như một khuyến nghị chung, nếu bạn có thể, hãy thử sử dụng thời gian Joda. Nó sạch hơn nhiều so với thời gian chuẩn Java. –

+0

@ClickUpvote Tôi khuyên bạn nên sử dụng thư viện [joda time] (http://www.joda.org/joda-time/) thay vào đó hoặc đợi đến Java 8 nơi API ngày được thiết kế lại. –

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