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

我在这里遇到了一个小问题,如果有人可以帮助我,我将非常感激!


当我尝试更新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从用户输入中获取对象的运行时间?


非常感谢您的宝贵时间!


偶然的你
浏览 151回答 2
2回答

慕虎7371278

静态而非动态谁能告诉我为什么不更新?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() ) ;

料青山看我应如是

如果您想要一个从特定时间开始更新的时钟,请尝试类似的操作LocalTime d = LocalTime.of(12, 15, 33);LocalTime start = LocalTime.now();for (int x = 0; x < 20; x++) {&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; Thread.sleep(1000);&nbsp; &nbsp; } catch (InterruptedException e) {&nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; }&nbsp; &nbsp; LocalTime now = LocalTime.now();&nbsp; &nbsp; Duration dur = Duration.between(start, now);&nbsp; &nbsp; start = now;&nbsp; &nbsp; d = d.plusSeconds(dur.getSeconds());&nbsp; &nbsp; System.out.println(d);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java