我有一个时间是由这样生成的:
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
您可以使用您创建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)