You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java输入内容时无法实时打印对应时间的问题求助

解决Java输入时实时时间不更新的问题

你的代码中时间始终固定不变的核心原因是:Date dNow = new Date()被声明在循环外部,仅在程序执行到该行时初始化一次,后续循环中重复使用的都是这个固定的时间点,不会随输入操作自动更新。

修复方案(基于原有API)

将Date对象的创建逻辑移到循环内部,每次输入后重新获取当前时间:

Scanner reader = new Scanner(System.in);
SimpleDateFormat dtformat = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss a");

for (int x = 0; x <= 5; x++){ 
    String obj = reader.nextLine();
    Date dNow = new Date(); // 每次输入后重新获取当前时间
    System.out.println(obj + " " + dtformat.format(dNow)); // 添加空格分隔内容与时间
}

更优方案(Java 8+ 推荐)

SimpleDateFormat存在线程安全隐患,推荐使用Java 8引入的java.time包下的时间API,它不仅线程安全,还更符合现代Java编码规范:

Scanner reader = new Scanner(System.in);
DateTimeFormatter dtformat = DateTimeFormatter.ofPattern("yyyy.MM.dd hh:mm:ss a");

for (int x = 0; x <= 5; x++){ 
    String obj = reader.nextLine();
    LocalDateTime now = LocalDateTime.now(); // 实时获取当前本地时间
    System.out.println(obj + " " + now.format(dtformat));
}

内容的提问来源于stack exchange,提问作者dwextit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:10:27