Date.getTime () ส่งคืนมิลลิวินาทีตั้งแต่วันที่ 1 มกราคม 1970 Unixtime คือวินาทีตั้งแต่วันที่ 1 มกราคม 1970 ฉันมักจะไม่ใช้โค้ดในจาวา แต่ฉันทำงานกับการแก้ไขข้อบกพร่องบางอย่าง ฉันมี:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
มีวิธีที่ดีกว่าที่จะใช้ unixtime ใน java หรือไม่?
27
เมื่อคุณส่งไปยัง int คุณได้เปิดตัวปัญหาปี 2038 (เทียบเท่า Y2K สำหรับ Unix) นั่นคือเมื่อยุคที่ Unix ได้รับความนิยมสูงถึง 2 พันล้านเหรียญ การแก้ไขคือการย้ายไปยัง Unix 64 บิต ค่าเทียบเท่าของ Java คือการปล่อยให้มันยาว
—
John M
ใช่ฉันรู้แล้ว รหัสนี้กำลังเชื่อมต่อกับที่คาดว่าจะเป็น 32 บิต int สำหรับ unixtime
—
Gary Richardson
2038 เร็ว ๆ นี้
—
Pacerier
มีชื่อหรือมาตรฐานที่เหมาะสมสำหรับ currentTimeMillis หรือไม่? ฉันมักจะอ้างถึงในเอกสารประกอบของฉันว่าเป็นเวลา UNIX เวอร์ชันมิลลิวินาที
—
Tom
หากคุณต้องการซอฟต์แวร์ของคุณจะอยู่รอดล้นใช้งานไม่ได้
—
bryc
long
int
ไม่มีเหตุผลที่จะใช้int
สำหรับการประทับเวลาเว้นแต่ว่าคุณกำลังใช้ความละเอียดที่แตกต่างกันเช่น 1 วินาที = 4 วินาที ฯลฯ ไม่ว่าจะเป็นหรือซ่อนรหัสของคุณเพื่อให้คนรุ่นต่อไปในอนาคตไม่สามารถเห็นว่าคุณไร้ความสามารถอย่างไร