public static void main(String[] args) throws ParseException {
// create a date
Date date = new Date();
long diff = date.getTime();
Date date1 = new Date(2013, 10, 1, 11, 6);
long diff1 = date1.getTime();
System.out.println("date is 1-10-2013, " + diff + " have passed.");
System.out.println("date is 1-10-2013, " + diff1 + " have passed.");
}
Run Code Online (Sandbox Code Playgroud)
而输出是
date is 1-10-2013, 1380605909318 have passed.
date is 1-10-2013, 61341428160000 have passed.
Run Code Online (Sandbox Code Playgroud)
任何人都能详细说明1380605909318和61341428160000之间的区别吗?
Jon*_*eet 12
这一行:
Date date1 = new Date(2013, 10, 1, 11, 6);
Run Code Online (Sandbox Code Playgroud)
......不做你所做的事情.这创建了一个Date对象,代表当地时间11点06分的3913年11月 1 日.我不认为这就是你想要的.
事实上,如果你改变你的代码,包括日期本身,而不是硬编码你认为正确的价值将是,你会发现:
System.out.println("date is " + date + ", " + diff + " have passed.");
System.out.println("date is " + date1 + ", " + diff1 + " have passed.");
Run Code Online (Sandbox Code Playgroud)
建议者被弃用是有原因的 - 你应该注意弃用以及文档.
现在,你可以只使用java.util.Calendar替代-但其实我建议你使用乔达时间相反,如果你所能.这是一个比java.util.Calendar/ 更清洁的API Date.或者,如果您可以使用具有新JSR-320日期/时间API的Java 8预发行版.