Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date对象将在java中的两个不同日期对象上返回1537865065664_Java_Date - Fatal编程技术网

Date对象将在java中的两个不同日期对象上返回1537865065664

Date对象将在java中的两个不同日期对象上返回1537865065664,java,date,Java,Date,我希望在java中使用new Date().getTime()以秒为单位计算时差。 但我将返回长数字,如1537865065664。 如何获得两个Date()对象之间的差异。 我将在下面附上我的代码的几个部分 Date starttime=new Date(); long diff= new Date().getTime() - starttime.getTime() System.out.println("hangupClicked New Time :: "+new

我希望在java中使用new Date().getTime()以秒为单位计算时差。 但我将返回长数字,如1537865065664。 如何获得两个Date()对象之间的差异。 我将在下面附上我的代码的几个部分

     Date starttime=new Date();
      long diff=  new Date().getTime() - starttime.getTime()
 System.out.println("hangupClicked New Time :: "+new Date().getTime()+" :: "+starttime.getTime());
输出::
挂起单击新时间::1537865248609::1537865348612

使用date1.getTime()-date2.getTime()获得的差异以毫秒为单位。您可以将输出除以1000,以秒为单位获得差值

(date1.getTime() - date2.getTime())/1000;
new Date().getTime()以毫秒为单位返回时间。因此,如果你想在几秒钟内,你需要将差值除以1000

 Date starttime=new Date();
  long diff=  (new Date().getTime() - starttime.getTime())/1000;

如果需要秒数,则将差值除以1000,即可获得秒数。Date().getTime()以毫秒为单位返回值。

getTime()的返回类型为从1970年1月1日到指定日期的毫秒。因此,为了获得秒数的差异,请使用下面的

(date.getTime() - date2.getTime())/1000;
java.time 刚刚打印的这个片段:

Difference in seconds: 0
这与预期的一样,因为对
Instant.now()
的两次调用之间没有一秒钟的间隔

你的代码出了什么问题? 您正确地计算了两个
Date
对象之间的毫秒差。您没有打印差异,因此从未看到它是正确的。你没有把它转换成秒

为了说明第一点,我在代码中添加了这一行:

    System.out.println("diff (milliseconds):: " + diff);
然后我从中得到了这个输出:

hangupClicked New Time :: 1537890219204 :: 1537890219204
diff (milliseconds):: 0
也就是说,你不应该在2018年使用日期。这个类早已过时,同时设计也很糟糕。您应该更喜欢使用java.time,即现代的java日期和时间API

链接
  • 解释如何使用
    java.time
  • 关于Jon Skeet的编码博客

我仍然得到挂起单击的差异秒::100挂起单击的新时间::1537873474080::1537873374061新日期()。getTime()返回==>15378650656664
差异秒::100
与预期或期望的结果有何不同?你想要哪个结果@RahulStill我得到了挂起单击的差异秒::100挂起单击的新时间::1537873474080::1537873374061新日期().getTime()返回==>15378650656664日期开始时间=新日期();long diff=(new Date().getTime()-starttime.getTime())/1000;System.out.println(“秒差”+diff)
new Date().getTime()
是执行
System的一种无效方法。currentTimeMillis()
这就是您想要的吗?我也没有真正理解你的问题。您对差异的计算看起来是正确的,但您没有打印差异。为什么要使用
日期
Date
类早已过时,存在大量设计问题。我建议您要么使用
System.currentTimeMillis()
然后使用
TimeUnit
转换为秒,要么使用更好的
Instant
Duration
查找差异并转换为秒。
hangupClicked New Time :: 1537890219204 :: 1537890219204
diff (milliseconds):: 0