import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class test {
/*
* Calculate the difference between two date/times *
*
*/
private static long dateDiff(Date toDate, Date fromDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(toDate);
long ms = cal.getTimeInMillis();
cal.setTime(fromDate);
ms -= cal.getTimeInMillis();
return ms;
}
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date d1 = null;
Date d2 = null;
try {
d1 = sdf.parse("11:00:00");
d2 = sdf.parse("10:00:00");
} catch (Exception e) {
e.printStackTrace();
}
long result = dateDiff(d1, d2);
Date time = new Date(result);
System.out.println(time);
}
}
当我运行它,我得到这样的结果:时间问题,此代码
周四1月1 02:00:00 CET 1970年
我预计1次小时的时差?!再次与时区有关的问题?
任何想法如何解决它。
thx全部
不回答你的问题,但如果你要做大量的工作,日期和时间,你应该使用[乔达时间(HTTP:// joda-time.sourceforge.net/)。它远远优于JDK API(以及更友好的IMO)。 – iruediger 2011-05-17 22:38:50
你的计算是正确的 - 这是一个时区问题。在方法中放一个打印语句,直接将毫秒转换为另一个单位(例如分钟)并打印出来。 – 2011-05-17 22:42:11
我需要两个日期字段之间的时间差异,然后将其放入MySql(时间格式) – 2011-05-17 22:44:28