如何更新Java Instant

时间:2019-01-28 12:49:46

标签: java datetime

我想更新一个Instant对象,以便可以再次与它进行比较。

Instant mvTime = Instant.now();
// Some Code
// Some More Code

下面的代码执行了很多次:

Instant currentTime = Instant.now();                            
Duration timeBetween = Duration.between(mvTime, currentTime);
if (timeBetween.getSeconds() > Long.parseLong("120")) {
    doSomething()
    mvTime = mvTime.plusSeconds(Long.parseLong("180"));
}

问题是我要更新同一实例。我该怎么办?

2 个答案:

答案 0 :(得分:2)

https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html

  

此类是不可变的并且是线程安全的。

您不能更改 instance ,每个进行实例变异的方法都将返回其自身的调整后副本。

答案 1 :(得分:0)

据我了解,您想更新SELECT dat.Empno FROM ( SELECT e.Empno ,e.Salary ,e.Dept ,e.City ,COUNT(*) OVER (PARTITION BY e.Salary, e.Dept) AS CNT_salary_dept ,COUNT(*) OVER (PARTITION BY e.Salary, e.Dept, e.City) AS CNT_salary_dept_city FROM tblEmployee e ) dat WHERE dat.CNT_salary_dept > dat.CNT_salary_dept_city ,可以在mvTime上使用几种方法,例如:

  • plusSeconds()
  • plusMillis()
  • plusNanos()
  • minusSeconds()
  • minusMillis()
  • minusNanos()

请注意,调用此方法将返回一个新的mvTime对象