Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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
Java 如何从停止时间中减去开始时间_Java_Datetime - Fatal编程技术网

Java 如何从停止时间中减去开始时间

Java 如何从停止时间中减去开始时间,java,datetime,Java,Datetime,我有以下两个字符串格式的日期,并希望获得这些日期的运行时间 Date elapsed = new Date( new SimpleDateFormat().parse("10/17/2014, 2:19:22 PM").getTime() - new SimpleDateFormat().parse("10/17/2014, 2:19:32 PM").getTime()); System.out.println("Elapsed Tim

我有以下两个字符串格式的日期,并希望获得这些日期的运行时间

Date elapsed = new Date(
               new SimpleDateFormat().parse("10/17/2014, 2:19:22 PM").getTime()
               - new SimpleDateFormat().parse("10/17/2014, 2:19:32 PM").getTime());
System.out.println("Elapsed Time: " + elapsed);
然而,我得到…异常:不可解析的日期:2014年10月17日,下午2:19:22有人知道为什么吗

注意:以下是我如何获得您在解析块生成的新SimpleDataFormatyyy MM dd HH:MM:ss.formattime中看到的日期

然而,我得到…异常:不可解析的日期:2014年10月17日,下午2:19:22有人知道为什么吗

因为您还没有告诉SimpleDataFormat字符串的格式。使用其中一个构造函数,这样它就知道需要什么

必须在SimpleDataFormat构造函数中指定格式。 字符串的格式为dd/MM/yyyy,hh:MM:ss a 你的减法逻辑是不正确的,因为它会给你日期之间的长值差,而你是根据无效的值创建日期。为此,你必须从该长值中获得精确的差。你必须用1000*60除以差值才能得到分钟,1000*60*60获得秒,1000*60*60*24获得天

SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy, hh:mm:ss a");
long diff = sdf.parse("10/17/2014, 2:19:22 PM").getTime()
                        - sdf.parse("10/17/2014, 2:18:32 PM").getTime();
System.out.println("Difference : " + (diff / (1000d * 60 )) +" Minutes");

注意:这里使用1000d执行浮点运算。

这是我得到的新SimpleDataFormatyyy MM dd HH:MM:ss.parse10/17/2014,2:19:22.getTime,我仍然得到相同的错误。@SimpledSolution:阅读SimpleDataFormat文档。HH表示小时内的两位数。您的输入中只有一个。它还预计范围为0-23;我怀疑你在对付1-12。你可能在找h,只是其中一个。