Java 如何获得两个日期和时间之间的差异
我想使用JAVA获得end_date_time和system_date_time之间的秒差,例如:Java 如何获得两个日期和时间之间的差异,java,Java,我想使用JAVA获得end_date_time和system_date_time之间的秒差,例如: if end_date_time = 2015-02-21 13:00:00 system_date_time = 2015-02-20 13:00:00 then difference = 86400 请告诉我如何执行此操作?如果您已经有了日期类型,那么它非常简单: (System.currentTimeMillis() - myDate.getTime()) /
if
end_date_time = 2015-02-21 13:00:00
system_date_time = 2015-02-20 13:00:00
then
difference = 86400
请告诉我如何执行此操作?如果您已经有了
日期
类型,那么它非常简单:
(System.currentTimeMillis() - myDate.getTime()) / 1000;
如果您有一个字符串,需要将其转换为日期,则可以使用SimpleDateFormat
实例:
String dateString = "2015-02-21 13:00:00" // end_date_time
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
Date myDate = sdf.parse(dateString);
如果您使用的是Java8,那么这就容易多了:
String dateString = "2007-12-03T10:15:30.00Z";
Instant.now().until(Instant.parse(dateString), ChronoUnit.SECONDS);
您的dateString
必须能够以ISO格式解析,但是:
"yyyy-mm-ddThh:mm:ss.SZ"
真的?在Google中输入
JavaDateTimeDifference站点:stackoverflow.com
时,65812次点击没有一次是好的?如果不是,为什么您希望第65813个会有所不同?:-)可能重复的“否”或“从不”。这并不能解释闰秒、闰年、世纪和千年边界造成的日期漂移。如果正确,请使用适当的库,如JodaTime或java8snewtime。添加了对Java8方法的引用。