比较System.currentTimeMillis()

时间:2016-08-07 10:51:31

标签: java date time compare

我想使用System.currentTimeMillis()比较两个不同的时间戳。

基本上我想检查时间戳是否在特定日期的3小时范围内。

怎么做?

4 个答案:

答案 0 :(得分:4)

考虑到您有time1time2time1 <= time2可以执行此操作:

if (time1 >= time2-(60*60*3*1000)) {
   // interval is up to 3 hours
} else {
   // interval is more than 3 hours
}

答案 1 :(得分:1)

使用Instant获取时代中的时间并将其转换为LocalDateTime以获取有关当天的信息并检查,如果第一次加3小时小于第二次:< / p>

long millis1 = System.currentTimeMillis();
...
long millis2 = System.currentTimeMillis();

Instant instant1 = Instant.EPOCH.plusMillis(millis1);
Instant instant2 = Instant.EPOCH.plusMillis(millis2);

LocalDateTime t1 = LocalDateTime.ofInstant(instant1, ZoneId.systemDefault());
LocalDateTime t2 = LocalDateTime.ofInstant(instant2, ZoneId.systemDefault());

System.out.println("same day: " + (t1.getDayOfYear() == t2.getDayOfYear()));
System.out.println("t1+3h >= t2: " + (t1.plusHours(3).compareTo(t2) >= 0));

答案 2 :(得分:0)

这是一个可能帮助您的示例程序。这里的关键是方法&#34; findIfDatesWithinThreeHours&#34;这有助于是否找出两个实例是否相隔三个小时。

foreach ($instance["widgets"] as $widgetID) {
$wdgtvar = 'widget_'._get_widget_id_base( $widgetID );
$idvar = _get_widget_id_base( $widgetID ); $instance = get_option( $wdgtvar );
$idbs = str_replace( $idvar.'-', '', $widgetID );

the_widget($idvar,$instance[$idbs]);

}

答案 3 :(得分:0)

你的问题很模糊。这可能会让你指向正确的方向。

如果通过&#34; timestamp&#34;你的意思是自1970年UTC世纪以来的一个毫秒数,construct an Instant。此类表示UTC时间轴上的时刻,分辨率为纳秒(小于毫秒)。

Instant instant = Instant.ofEpochMilli( millis );

获取当前时刻。

Instant now = Instant.now();

计算三个小时。

Instant in3Hours = now.plus( 3 , ChronoUnit.HOURS );

看看你的时刻是从现在到三小时之间。

Boolean contained = ( ( ! instant.isBefore( now ) ) && instant.isBefore( in3Hours ) );

如果您想要比较一对时刻以查看经过的时间是否少于3小时,请使用Duration。此类表示以秒和纳秒为单位的时间跨度。

Instant earlierInstant = … ;
Instant laterInstant = … ;
Duration duration = Duration.between( earlierInstant , laterInstant );
if ( duration.isNegative() ) { 
    … handle error of unexpected data inputs where the second instant is *before* the first instant.
}
… else …
Boolean elapsedUnderThreeHours = ( duration.compareTo( Duration.ofHours( 3 ) ) == -1 );