在下面的代码中,我将 java.util.date 转换为 java.sql.date。我很困惑,虽然给出了如下所示纪元之前的日期,并且我还使用了 date.getTime() 方法,它给出了纪元的毫秒数,但它给了我正确的时间,如结果所示。我的问题是为什么它没有失败(正如我假设的那样)?为什么它给出了正确的时间?
代码:
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-M-yyyy hh:mm:ss"); //defining format
String dateOfAdmissionInString = "22-01-1966 05:03:33";
Date utilDateOfAdmission = sdf2.parse(dateOfAdmissionInString);
java.sql.Timestamp sqlDateOfAdmission = new Java.sql.Timestamp(utilDateOfAdmission.getTime());
System.out.println("utilDateOfAdmission:" + utilDateOfAdmission);
System.out.println("sqlDateOfAdmission:" + sqlDateOfAdmission);
结果:
utilDateOfAdmission: Sat Jan 22 05:03:33 PKT 1966
sqlDateOfAdmission: 1966-01-22 05:03:33.0
最佳答案
My questions is why it didn't fail
因为自纪元以来的毫秒数允许为负数,这表示 1970 年 1 月 1 日午夜 GMT 之前的日期/时间。
Gratuitous example :埃尔维斯的出生日期:
Date dt = new Date(-1103932800000L);
System.out.println(dt.toString());
关于java - 为什么 Epoch 使用 java.util.date 没有失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114846/