Java日期奇怪的行为
Java Date类的行为非常奇怪:Java日期奇怪的行为,java,date,Java,Date,Java Date类的行为非常奇怪: System.out.println(new Date().toGMTString()); long l = 1332452310L; Date d = new Date(l); System.out.println(d.toGMTString()); 给我 22 Mar 2012 22:00:42 GMT 16 Jan 1970 10:07:32 GMT 为什么会发生这种情况?您的长l是以秒为单位的时间,您需要将其设置为
System.out.println(new Date().toGMTString());
long l = 1332452310L;
Date d = new Date(l);
System.out.println(d.toGMTString());
给我
22 Mar 2012 22:00:42 GMT
16 Jan 1970 10:07:32 GMT
为什么会发生这种情况?您的长l是以秒为单位的时间,您需要将其设置为以毫秒为单位的时间:
long l = 1332452310L * 1000L;
您给出的是秒数,而不是毫秒数,您应该这样做 日期(长)需要毫秒。将您的值乘以1000,然后检查您是否得到了预期的结果。您必须将1000次传输时间从秒增加到毫秒才能输入数据。您希望得到什么?date构造函数的长参数是自1970年1月1日以来的毫秒数。新日期现在给出。一个长参数表示1970年的毫秒。当您查阅文档时,文档告诉了您什么?对不起,我的错。晚些时候,我被没有L参数的超出范围的错误弄糊涂了。