为什么大纪元没有';使用java.util.date不会失败吗?
在下面的代码中,我将java.util.date转换为java.sql.date。我感到困惑的是,虽然给出了如下所示的历元之前的日期,而且我还使用了date.getTime()方法,从历元开始计算毫秒,但它给了我正确的时间,如结果所示。我的问题是为什么它没有失败(我认为它应该失败)?为什么它给出了正确的时间 代码:为什么大纪元没有';使用java.util.date不会失败吗?,java,date,timestamp,epoch,Java,Date,Timestamp,Epoch,在下面的代码中,我将java.util.date转换为java.sql.date。我感到困惑的是,虽然给出了如下所示的历元之前的日期,而且我还使用了date.getTime()方法,从历元开始计算毫秒,但它给了我正确的时间,如结果所示。我的问题是为什么它没有失败(我认为它应该失败)?为什么它给出了正确的时间 代码: SimpleDateFormat sdf2 = new SimpleDateFormat("dd-M-yyyy hh:mm:ss"); //defining format Strin
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
结果:
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
历元只指定值零的位置。该点之前的日期/时间仍可表示为与历元的负偏移量 历元只指定值0的位置。该点之前的日期/时间仍可表示为与历元的负偏移量 我的问题是为什么它没有失败 因为自历元起的毫秒数允许为负数,表示1970年1月1日午夜GMT之前的日期/时间 :猫王的生日:
Date dt = new Date(-1103932800000L);
System.out.println(dt.toString());
我的问题是为什么它没有失败
因为自历元起的毫秒数允许为负数,表示1970年1月1日午夜GMT之前的日期/时间
:猫王的生日:
Date dt = new Date(-1103932800000L);
System.out.println(dt.toString());
我不明白,先生,-86400000的时间值是纪元前一天,或1969年12月31日00:00:00(在GMT/UTC区域)谢谢你的回答。我不明白,先生。时间值-86400000是纪元前一天,或1969年12月31日00:00:00(在GMT/UTC区域)谢谢你的回答。好的!那么使用这种方法可以吗?还是会在某个时候破裂?@RabiaNazkhan:完全没问题。请注意,对于任何重要的内容,您都希望使用
java.util.Calendar
(它也使用来自历元的偏移量)或各种(或JodaTime),因为Date
几乎没有有用的特性,大约90%的API不推荐使用。但与时代的负偏移是完全正常的。例如,java.util.Gregoriacalendar
处理1582年10月的不连续性,因此显然希望处理负历元值。好吧!先生,非常感谢您澄清了我的概念。好的!那么使用这种方法可以吗?还是会在某个时候破裂?@RabiaNazkhan:完全没问题。请注意,对于任何重要的内容,您都希望使用java.util.Calendar
(它也使用来自历元的偏移量)或各种(或JodaTime),因为Date
几乎没有有用的特性,大约90%的API不推荐使用。但与时代的负偏移是完全正常的。例如,java.util.Gregoriacalendar
处理1582年10月的不连续性,因此显然希望处理负历元值。好吧!先生,非常感谢你澄清了我的想法。