2012-10-15 33 views
9

Tôi đã sử dụng lớp học java.util.Date để tạo đối tượng ngày và sử dụng getTime() để nhận mili giây hiện tại.new Date(). GetTime() không trả về dấu thời gian tính bằng mili giây

Tôi đã thấy trong tài liệu Java rằng getTime() trả về mili giây và trường hợp tương tự nằm trên máy của tôi.

Tôi có một máy chủ khác, khi triển khai ứng dụng của mình trên máy chủ, cùng một số getTime() trả về dấu thời gian tính bằng giây.

ví dụ:

  • giá trị trên máy chủ: 1350054625
  • giá trị về địa phương: 1350054625000

tôi tự hỏi thế nào điều này là có thể, tôi đã cố gắng cùng mã tại địa phương và một lần nữa tôi nhận được dấu thời gian trong mili giây.

Dưới đây là một phần của mã ...

String longTime = new Long((new Date().getTime())).toString(); 
if(log.isDebugEnabled())log.debug("LAST_FEED_TIME will be " + longTime + " stored."); 
+0

gì máy chủ bạn đang sử dụng? – Abubakkar

+1

Làm cách nào để bạn nhận được giá trị từ máy chủ? – strmstn

+3

Ngày là trình bao bọc cho giá trị bạn nhận được từ 'System.currentTimeMillis();' bạn có thể thử sử dụng thay vào đó không? –

Trả lời

7

'new Date()' lần lượt sử dụng System.currentTimeMillis()

System.currentTimeMillis

Returns thời gian hiện tại tính bằng mili giây. Lưu ý rằng mặc dù đơn vị của thời gian của giá trị trả lại là một phần nghìn giây, độ chi tiết của giá trị phụ thuộc vào hệ điều hành cơ bản và có thể lớn hơn. Ví dụ: nhiều hệ điều hành đo thời gian theo đơn vị hàng chục mili giây.

Xem mô tả của lớp Ngày để thảo luận về sự khác biệt nhỏ sự khác biệt có thể xảy ra giữa "thời gian máy tính" và phối hợp giờ quốc tế (UTC).

nguồn: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.html#currentTimeMillis()

+5

Điều này không hoàn toàn giải thích tại sao cùng một mã sẽ trả lại kết quả khác nhau khi chạy trên các máy khác nhau, phải không? – Ewald

+1

Có, Điều này không trả lời được câu hỏi. Nhưng tôi nghĩ thông tin này sẽ giúp tìm ra vấn đề. Ví dụ: "Một số hệ điều hành đo thời gian theo đơn vị hàng chục mili giây". Đơn vị đo thời gian theo hệ điều hành trong máy chủ có thể là thứ hai. – Munesh

+1

Đó là sự thật - nhưng sau đó Java sẽ trả về trong cùng một định dạng, nhưng mili giây được đặt thành '0'. Tôi hiểu tại sao bạn đặt thông tin, tôi chỉ kiểm tra xem tôi có thiếu gì đó không :) – Ewald