2 回答
TA贡献1802条经验 获得超4个赞
静态而非动态
谁能告诉我为什么不更新?
ALocalTime
代表一天中的特定时间。对象是不可变的,不变的,并且不能更新。
调用LocalTime.now()
捕获执行时刻的时间。该值以后不会改变。要稍后获取当天的当前时间,请LocalTime.now()
再次调用一个全新的对象。
要显示对象的值LocalTime
,请调用.toString
以标准 ISO 8701 值生成文本。对于其他格式,请使用DateTimeFormatter
. 搜索以了解更多信息,因为这已经处理过很多次了。
经过时间
如何从用户输入中获取 LocalTime 对象的运行时间?
也许您的意思是您想要确定自先前时刻以来已经过去的时间量,例如用户上次执行特定操作或手势的时间。
所以我可以看到时间的流逝
对于经过的时间,您需要跟踪某个时刻而不是一天中的某个时间。该类Instant
代表 UTC 中的一个时刻。
Instant instant = Instant.now() ; // Capture the current moment in UTC.
使用 计算以小时-分钟-秒为单位的经过时间Duration
。
Duration d = Duration.between( instant , Instant.now() ) ;
TA贡献1772条经验 获得超8个赞
如果您想要一个从特定时间开始更新的时钟,请尝试类似的操作
LocalTime d = LocalTime.of(12, 15, 33);
LocalTime start = LocalTime.now();
for (int x = 0; x < 20; x++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
LocalTime now = LocalTime.now();
Duration dur = Duration.between(start, now);
start = now;
d = d.plusSeconds(dur.getSeconds());
System.out.println(d);
}
添加回答
举报