2012-08-14 21 views
6

Tôi đang cố gắng hợp nhất một số mã rất lộn xộn nhưng tôi muốn chắc chắn rằng tôi không phá vỡ mọi thứ. Ở một số nơi, tôi thấy một ngày được tạo là Calendar.getInstance().getTime() và những người khác chỉ là new Date(). Nó sẽ phá vỡ mọi thứ nếu tôi chuyển đổi tất cả để new Date() hoặc là có một số lý do tôi có thể muốn sử dụng khác?Là Calendar.getInstance(). GetTime() có bao giờ sẽ cho tôi một câu trả lời khác với Date mới() không?

Trả lời

10

Về lý thuyết, không, bởi vì cả hai java.util.Date và java.util.Calendar.getInstance() cuối cùng sử dụng System.currentTimeMillis() để trả lại thời gian hiện tại.

Việc triển khai Lịch, tuy nhiên, xem xét những thứ khác, như Ngôn ngữ, hoặc nếu ngôn ngữ là JP hoặc TH ... bạn có thể thấy điều đó trong mã nguồn của cả hai lớp.

-2

Tôi nghĩ cả hai sẽ trở lại giống nhau:

Calendar.getInstance().getTime(): Trả về một ngày đối tượng đại diện giá trị thời gian của Lịch này (một phần nghìn giây bù đắp từ Epoch (01 tháng 1 1970 00: 00:. 00.000 giờ (Gregorian)) ")

new Date(): sử dụng nội bộ System.currentTimeMillis(), phân bổ đối tượng Date và khởi tạo nó để nó thể hiện thời gian được phân bổ, được đo bằng mili giây gần nhất. thời gian và nửa đêm, ngày 1 tháng 1 năm 1970 UTC.

Tôi đã kiểm tra như:

public static void main(String[] args) { 
    Date date = new Date(); 
    Date date1 = Calendar.getInstance().getTime(); 

    System.out.println(date +" = " + date1); 

} 

Output:

Wed Aug 15 02:45:15 IST 2012 = Wed Aug 15 02:45:15 IST 2012 
+1

Kiểm tra một lần không có gì để đảm bảo rằng không có một số tình huống mà cả hai khác nhau. Thông tin có thẩm quyền là cần thiết. – ToolmakerSteve

+0

Hãy xem câu trả lời của Filipe Fedalto, anh ấy đã giải thích tốt hơn tôi nghĩ. –

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