Date.getTime() trả về mili giây kể từ ngày 1 tháng 1 năm 1970. Unixtime là giây kể từ ngày 1 tháng 1 năm 1970. Tôi không thường viết mã bằng java, nhưng tôi đang thực hiện một số sửa lỗi. Tôi có:Lấy "unixtime" trong Java
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
Có cách nào tốt hơn để có được unixtime trong java không?
CẬP NHẬT
Dựa trên đề nghị John M, tôi đã kết thúc với:
return (int) (System.currentTimeMillis()/1000L);
Vì bạn đã truyền nó thành một int, bạn đã giới thiệu bài toán năm 2038 (tương đương với Y2K cho Unix). Đó là khi thời đại của Unix chạm tới 2 tỷ và chuyển sang tiêu cực. Bản sửa lỗi là chuyển sang Unix 64 bit. Tương đương Java là để nó như là một lâu dài. –
Vâng, tôi biết điều đó. Mã này là giao tiếp với đang mong đợi một int 32bit cho unixtime. –
2038 sắp ra mắt. – Pacerier