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,只是其中一个。