如何在两个date_time之间获得差异

时间:2015-02-19 00:24:29

标签: 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

请告诉我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您已经有Date类型,那就简单了:

(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"