我想以字符串格式比较两个日期,并以HH:MM:SS:SSS的结果作为字符串返回结果。 当我尝试使用15 Jul 2013 17:08:34.903
的开始日期和结束日期 15 Jul 2013 17:08:51.247
运行以下内容时,我期望看到00:00:16.344
的结果。相反,我得到01:00:16.344
的差异。任何想法,为什么会这样?SimpleDateFormat比较问题
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("d MMM yyyy HH:mm:ss.SSS");
private static final SimpleDateFormat DATE_FORMAT_HH_MM_SS = new SimpleDateFormat("HH:mm:ss.SSS");
public String calculateDuration(String startDateStr, String endDateStr){
String methodName = "calculateDuration";
try {
Date startDate = DATE_FORMAT.parse(startDateStr);
Date endDate = DATE_FORMAT.parse(endDateStr);
long diff = endDate.getTime() - startDate.getTime();
return DATE_FORMAT_HH_MM_SS.format(diff);
这是Java吗?考虑给它语言标记 – doctorlove
是你的TZ UTC + 1? –
我认为你应该使用[* JodaTime *](http://joda-time.sourceforge.net/)来计算时间差(持续时间)。这将简化你的生活。 – LaurentG