时间戳计算剩余时间



我需要计算时间戳的剩余时间和当前时间,我使用创建时间戳

new Timestamp(System.currentTimeMillis() + (3600000 * 6)); // +6 hours from now

然后我用比较时间

DateFormatUtils.format(System.currentTimeMillis() - timeStamp.getTime(), "HH:mm");

这给出的问题是16小时:00米,应该是6小时或更短。

新时间戳(System.currentTimeMillis((+(3600000*6((;//+6小时后

永远不要使用Timestamp类,正如我今天的另一个答案中所讨论的那样。遗留的日期-时间类在几年前被JSR310中定义的现代java.time类所取代。

那行应该是:

Instant then = Instant.now().plus( Duration.ofHours( 6 ) ) ;

使用Duration类确定运行时间。

Duration d = Duration.between( Instant.now() , then ) ;

比较小时数。

if( d.toHours() > 6 ) { … }

提取零件。

String result = d.toHoursPart() + “h “ + d.toMinutesPart() + "m " ;

顾名思义,DateFormatUtils用于格式化日期。你想要的是DurationFormatUtils。你的计算是倒过来的:

long duration = timeStamp.getTime() - System.currentTimeMillis();
String formatted = DurationFormatUtils.formatDuration(duration, "HH:mm");

最新更新