【问题标题】:How to calculate the difference between two dates in hours with java?java - 如何用java计算两个日期之间的时间差?
【发布时间】:2017-07-19 23:35:55
【问题描述】:

我必须计算两个日期之间的差异,其中一个来自用户输入,另一个来自当前时间。这是我目前所拥有的:

long time2 = System.currentTimeMillis();
System.out.print("Enter Time-in(hh:mm)");
String start = input.next();
String newTime[] = start.split(":");
String h = newTime[0];
String m = newTime[1];
String s = newTime[2];

int newH = Integer.parseInt(h);
int newM = Integer.parseInt(m);

LocalTime time1 = LocalTime.now();
long hr=ChronoUnit.HOURS.between(time1,time2);
System.out.println("Total number of hours: " + hr);

【问题讨论】:

  • 从用户输入的时间值开始创建一个新的LocalTime(或LocalDateTime)
  • LocalTime().of(newH, newM) 例如,你就有了可以比较的东西
  • 你能把javascript标签去掉吗?
  • @shmosel(像这样?) LocalTime time1 = LocalTime.now(); LocalTime.parse(开始); long hr=ChronoUnit.HOURS.between(time1,time2); System.out.println("总小时数:"+hr);
  • 关于 Stack Overflow 的下一个问题的提示,如果您清楚准确地解释您的代码如何无法解决您的问题,它会更容易帮助您;也就是说,期望行为与程序观察到的行为之间的差异。

标签: java time java-time timedelta localtime


【解决方案1】:

试试这个:

    System.out.print("Enter Time-in(hh:mm)");
    String start=input.next(); //make sure it have "hh:mm" format
    LocalTime userTime = LocalTime.parse(start);
    LocalTime currentTime = LocalTime.now();


    long diff = ChronoUnit.HOURS.between(currentTime, userTime);

【讨论】:

  • 应该解决 OPs 的问题,好!但是,您还可以通过解释代码的作用来提高答案的质量。例如LocalTime 是如何工作的,以及它在LocalTime#parse 处所期望的模式。提供来自 Java-API 的链接也很有帮助,例如:docs.oracle.com/javase/8/docs/api/java/time/…
  • 我尝试了代码,但在 (hh:mm) 中输入时间后,它显示错误......
  • 那么输入数字的时候我们要拆分吗??
  • System.out.print("输入时间hh:mm");字符串 start=input.next(); LocalTime userTime = LocalTime.parse(start); LocalTime currentTime=LocalTime.now(); long hr=ChronoUnit.HOURS.between(currentTime,userTime); System.out.println("总小时数:"+hr);
  • 不,你不必分割任何东西,你只需要以 hh:mm 格式输入时间,例如:“10:30”
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 2021-11-25
  • 2011-08-01
相关资源
最近更新 更多