计算剩余时间?

Jam*_* MV 0 java

我有一个时间是由这样生成的:

SimpleDateFormat dateFormatUCT = new SimpleDateFormat("yyyy-MM-dd HH:mm");
dateFormatUCT.setTimeZone(TimeZone.getTimeZone("UCT"));

String deadline = dateFormatUCT.format(new Date());
Run Code Online (Sandbox Code Playgroud)

我现在把它作为一个叫做截止日期的字符串.我希望稍后再次获取当前日期时间,并比较截止日期是否已过.如果没有通过,我想计算剩余的时间.有没有一个良好的内置方式这样做已经牢记数据现在是一个字符串?

TIA

Per*_*ion 9

您可以使用您创建parse相同日期格式的方法将String表示形式转换回日期:

Date deadlineDate = dateFormatUCT.parse(deadline);
Run Code Online (Sandbox Code Playgroud)

为了比较另一个日期(比如说currentDate)是否已超过截止日期,足以做到:

if(currentDate.after(deadlineDate)) {
    // deadline has passed, do something
}
Run Code Online (Sandbox Code Playgroud)

要获得它们之间的时间差(以毫秒为单位),只需执行以下操作即可:

long timeDiff = currentDate.getTime() - deadlineDate.getTime();
Run Code Online (Sandbox Code Playgroud)

您可以使用TimeUnit该类的方法将此毫秒值转换为其他单位(如天,分,秒等):

TimeUnit.SECONDS.toSeconds(timeDiff);
Run Code Online (Sandbox Code Playgroud)