为了账号安全,请及时绑定邮箱和手机立即绑定

从 java 控制台上的 LocalTime.of() 方法更新 Localtime 对象

从 java 控制台上的 LocalTime.of() 方法更新 Localtime 对象

偶然的你 2024-01-17 20:46:18
我在这里遇到了一个小问题,如果有人可以帮助我,我将非常感激!当我尝试更新LocalTime从该LocalTime.now()方法创建的对象以便我可以看到时间的流逝时,它的工作原理是代码:     public static void main(String[] args) {        LocalTime d = LocalTime.now();        String h = String.valueOf(d.getHour());        String m = String.valueOf(d.getMinute());        String s = String.valueOf(d.getSecond());        System.out.print("\r"+h + ":" + m + ":" + s);        //Update :        Thread.sleep(1000);     }输出 :1:53:2 (time is passing)但是当我运行这个时:     public static void main(String[] args) {        LocalTime d = LocalTime.of(12, 15, 33);        String h = String.valueOf(d.getHour());        String m = String.valueOf(d.getMinute());        String s = String.valueOf(d.getSecond());        System.out.print("\r"+h + ":" + m + ":" + s);        //Update :        Thread.sleep(1000);     }输出 :12:15:33 (time is not passing)谁能告诉我为什么不更新?如何LocalTime从用户输入中获取对象的运行时间?非常感谢您的宝贵时间!
查看完整描述

2 回答

?
慕虎7371278

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() ) ;


查看完整回答
反对 回复 2024-01-17
?
料青山看我应如是

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);

}


查看完整回答
反对 回复 2024-01-17
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信