如何比較兩個timeStamp並從中獲得差異。我試圖獲得兩個不同時間戳之間的持續時間。使用日期,但我比較時發生異常。如何比較兩個不同TimeStamp之間的持續時間
該如何獲取時間戳2013年1月8日6時19分35秒
我越來越喜歡例外java.text.ParseException:無法解析 日期:「2013年1月8日06: 19:35"
如何比較兩個timeStamp並從中獲得差異。我試圖獲得兩個不同時間戳之間的持續時間。使用日期,但我比較時發生異常。如何比較兩個不同TimeStamp之間的持續時間
該如何獲取時間戳2013年1月8日6時19分35秒
我越來越喜歡例外java.text.ParseException:無法解析 日期:「2013年1月8日06: 19:35"
Calendar thatDay = Calendar.getInstance();
thatDay.set(Calendar.DAY_OF_MONTH,25);
thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less
thatDay.set(Calendar.YEAR, 1985);
Calendar today = Calendar.getInstance(); //THIS IS TO GET TODAY DATE, you can simpy use your two dates
long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis
下面是一個近似值......
long days = diff/(24 * 60 * 60 * 1000);
PLUS:解析字符串中的日期,你可以使用
String strThatDay = "1985/08/25";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date d = null;
try {
d = formatter.parse(strThatDay);//catch exception
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar thatDay = Calendar.getInstance();
thatDay.setTime(d); //rest is the same....
您的比較方法與[Sajal Dutta的答案](http://stackoverflow.com/a/18019271/1065197)存在同樣的問題,請查看我的評論。 –
Eugh,這是一個'TimeUnit'類。不要重新發明輪子。 –
轉換日期成毫秒,然後你可以使用
long difference = finalDate.getTime() - initialDate.getTime();
關於你ParseException
,有什麼不對的爲日期格式化程序解析模式。我認爲這是正確的"dd-MM-yyyy HH:mm:ss"
如果要分析"01-08-2013 06:19:35"
或者您可以使用Joda-Time庫,並找到如下方式的時間差:
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy HH:mm:ss");
DateTime finalDate = formatter.parse("someDate1");
DateTime initialDate = formatter.parse("someDate2");
Interval interval = new Interval(finalDate, initialDate);
毫秒方法不是最好的方法。相反,只要保持喬達時間(不是約達時間)的方法。 –
您可以使用'TimeUnit.MILLISECONDS.toXXX(差異)'來轉換另一個單位中的增量。 –
@LuiggiMendoza是的。對不起,星球大戰粉絲。 :) –
發佈您的代碼看看你在做什麼。 –