Điều gì là sai? Tôi giả sử rằng nếu tôi trừ 1ms từ 1 tháng 1 năm 1980 0: 0: 0 thì tôi đã có 1979. Nhưng tôi phải trừ khoảng 500+ ms cho điều này. Xin vui lòng, cho tôi một gợi ý.Phép trừ 1ms dẫn đến hành vi không mong muốn
val cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
cal.set(1980, 0, 1, 0, 0, 0)
val date = new Date
date.setTime(cal.getTimeInMillis()) // <- 1980 Jan 01 0:0:0
date.setTime(cal.getTimeInMillis() - 1) // <- 1980 Jan 01 0:0:0 too !!!
Đã cập nhật.
Giải pháp là
val cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
cal.setTimeInMillis(0)
cal.set(1980, 0, 1, 0, 0, 0)
Chỉ cần đoán, nhưng có thể nội bộ Lịch làm tròn lên giây? – Aaron
Cố gắng in nội dung 'ngày' sau lệnh gọi' setTime() 'đầu tiên. Có thể năm, tháng, ngày, giờ, phút và giây là giá trị bạn đặt, nhưng không phải là mili giây. –
Đó là một chút bối rối. Tôi không muốn sử dụng Yoda Time hoặc thư viện phần thứ ba khác. Tôi cần phải chuyển đổi năm, tháng, ngày thành mili giây và sau đó nhận được mili giây cuối cùng trong ngày. Tôi muốn tìm giải pháp chính xác cho việc này. Thật không may, javadoc là im lặng về tình hình như vậy. – Ezhik