Java-以分钟为单位的时差 [英] Java - Time difference in minutes
本文介绍了Java-以分钟为单位的时差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到了以分钟为单位计算时差的问题.它的工作原理很好,例如计算之间的差异2045和2300.
I have this problem with calculating time difference in minutes. Its working fine with exampples like calculating the difference between 2045 and 2300.
但是当我想计算例如2330(今天)和0245(明天)我得到了错误的答案.下面的代码:
But when I want to calculate the difference between for example 2330 (today) and 0245 (tomorrow) I get a incorrect answer. Code below:
// This example works
String dateStart = "2045";
String dateStop = "2300";
// This example doesnt work
//String dateStart = "2330";
//String dateStop = "0245";
// Custom date format
SimpleDateFormat format = new SimpleDateFormat("HHmm");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (Exception e) {
e.printStackTrace();
}
long diff = d2.getTime() - d1.getTime();
long minutes = TimeUnit.MILLISECONDS.toMinutes(diff);
System.out.println("Time in minutes: " + minutes + " minutes.");
预先感谢
推荐答案
这不起作用,因为当您创建一个只有一个时间的新日期时,它假设日期是今天".
This is not working because when you create a new date with just a time in it, it's assuming the day is "today".
您可以做的是:
// This example works
String dateStart = "2045";
String dateStop = "2300";
// This example doesnt work
//String dateStart = "2330";
//String dateStop = "0245";
// Custom date format
SimpleDateFormat format = new SimpleDateFormat("HHmm");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (Exception e) {
e.printStackTrace();
}
// MY ADDITION TO YOUR CODE STARTS HERE
if(d2.before(d1)){
Calendar c = Calendar.getInstance();
c.setTime(d2);
c.add(Calendar.DATE, 1);
d2 = c.getTime();
}
// ENDS HERE
long diff = d2.getTime() - d1.getTime();
long minutes = TimeUnit.MILLISECONDS.toMinutes(diff);
System.out.println("Time in minutes: " + minutes + " minutes.");
但是您应该考虑使用Java 8的新日期/时间功能或Joda Time.
But you should consider using Java 8 new Date/Time features, or Joda Time.
这篇关于Java-以分钟为单位的时差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文