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