如何比较两个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是的。对不起,星球大战粉丝。 :) –
发布您的代码看看你在做什么。 –