java - 为什么 Epoch 使用 java.util.date 没有失败?

标签 java date timestamp epoch

在下面的代码中,我将 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/

相关文章:

java - 组合两个不同按钮的输出

java - Java 中的随机数生成器

excel - 确定字符串是否是某个范围内的日期前缀的算法

java - MinHeap 提取/heapDown() 失败 : incorrect order of elements

java - Android 振动已弃用。如何在 Android>= API 26 中使用 VibrationEffect?

node.js - Windows PowerShell 不会从 Node.js 控制台记录 Date 对象

java - sql查询按日期和时间获取数据

java - 从 unix 值获取前一小时/前一天的时间戳

mysql - 如何将日期字符串 "yyyy-mm-ddThh:mm:ssZ"转换为时间戳

javascript - 在 JavaScript 中将时间戳转换为毫秒