لماذا يعطي طرح مللي ثانية الحقبة (عام 1927) نتيجة غريبة؟
مرحباً بالجميع! أنا مبتدئ في Java وقد واجهت مشكلة غريبة جداً عند العمل مع التواريخ. أحاول حساب الفرق بالمللي ثانية بين لحظتين زمنيتين في عام 1927، لكن النتيجة لا تأتي كما توقعت.
إليك الكود الخاص بي:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class StrangeDate {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
// التاريخ 1: 1927-12-31 23:54:07
Date date1 = sdf.parse("1927-12-31 23:54:07");
// التاريخ 2: 1927-12-31 23:54:08
Date date2 = sdf.parse("1927-12-31 23:54:08");
long diff = date2.getTime() - date1.getTime();
System.out.println("الفرق بالمللي ثانية: " + diff);
// أتوقع: 1000 (ثانية واحدة)
// أحصل على: 353 (حوالي 0.35 ثانية!)
}
}
```
أتوقع