tl; dr
Bạn có một số toàn giây từ 1970-01-01T00:00:00Z
hơn mili giây.
Instant.ofEpochSecond(1_379_487_711L)
.toString()
2013-09-18T07: 01: 51Z
Tổng giây so với mili giây
Như đã trình bày ở trên, bạn nhầm lẫn một số-of-giây với một số-of- mili giây.
Sử dụng java.time
Các câu trả lời khác có thể đúng nhưng đã lỗi thời. Các lớp thời gian ngày rắc rối cũ được sử dụng hiện nay được thừa kế, được thay thế bởi các lớp java.time. Đối với Android, hãy xem những viên đạn cuối cùng bên dưới.
Lớp Instant
đại diện cho một thời điểm trên dòng thời gian ở UTC với độ phân giải nanoseconds (tối đa chín (9) chữ số thập phân).
Instant instant = Instant.ofEpochSecond(1_379_487_711L) ;
instant.toString(): 2013-09-18T07: 01: 51Z
Áp dụng múi giờ mà qua đó bạn muốn xem thời điểm này.
ZoneId z = ZoneId.of("America/Montreal") ;
ZonedDateTime zdt = instant.atZone(z) ;
zdt.toString(): 2013-09-18T03: 01: 51-04: 00 [America/Montreal]
Xem code run live at IdeOne.com này.
Về java.time
Khung java.time được xây dựng vào Java 8 và sau đó. Các lớp này thay thế các lớp học ngày giờ legacy phiền hà cũ như java.util.Date
, Calendar
, & SimpleDateFormat
.
Dự án Joda-Time, hiện đang ở maintenance mode, khuyên di chuyển đến các lớp java.time.
Để tìm hiểu thêm, hãy xem Oracle Tutorial. Và tìm kiếm Stack Overflow cho nhiều ví dụ và giải thích. Đặc điểm kỹ thuật là JSR 310.
Nơi lấy các lớp java.time?
Dự án mở rộng ThreeTen-Extra java.time với các lớp bổ sung.Dự án này là một nền tảng chứng minh cho những bổ sung có thể có trong tương lai vào java.time. Bạn có thể tìm thấy một số lớp học hữu ích tại đây như Interval
, YearWeek
, YearQuarter
và more.
Bạn có chắc chắn điều này chỉ mất vài giây và không phải giây đơn giản? sử dụng điều này để kiểm tra thời gian của bạn: http://www.onlineconversion.com/unix_time.htm – Sean
Khi tôi kiểm tra câu trả lời là Thứ Tư, 18 tháng 9 năm 2013 07:01:51 UTC – jkk
Tôi đang sử dụng dấu thời gian như thời gian dài = System.currentMilliSeconds ; – jkk