java.util.concurrent.TimeUnit减去日期
好的,这相当简单,但它似乎在做一些我不理解的事情。我想做的是计算一个时间,比如说12:30,一个暂停,比如说1点,然后计算这两个时间之间的时间。出于某种原因,它给了我十个小时的时间差(用打卡输入设置时间,用打卡输出设置超时,两者都是日期字符串)。我想知道我是否把日期格式化错了?代码如下:java.util.concurrent.TimeUnit减去日期,java,date,datetime,simpledateformat,Java,Date,Datetime,Simpledateformat,好的,这相当简单,但它似乎在做一些我不理解的事情。我想做的是计算一个时间,比如说12:30,一个暂停,比如说1点,然后计算这两个时间之间的时间。出于某种原因,它给了我十个小时的时间差(用打卡输入设置时间,用打卡输出设置超时,两者都是日期字符串)。我想知道我是否把日期格式化错了?代码如下: public void getDailyHours(){ for (Employee e : employees){ try { Date date1 = ne
public void getDailyHours(){
for (Employee e : employees){
try {
Date date1 = new SimpleDateFormat("MMM DD, YYYY HH:mm:ss a", Locale.ENGLISH).parse(e.getPunchIn());
Date date2 = new SimpleDateFormat("MMM DD, YYYY HH:mm:ss a", Locale.ENGLISH).parse(e.getPunchOut());
long diff = date1.getTime() - date2.getTime();
long diffHours = TimeUnit.MILLISECONDS.toHours(diff);
e.setDailyHours(diffHours);
} catch (ParseException ex) {
Logger.getLogger(EmployeeArray.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
改变
到
假设您的字符串输入是
Jan 21, 2014 10:12:12 AM
见
DD
应该是DD
并且HH
应该是HH
,因为a
请参考:并张贴输入字符串OK,谢谢。我找不到date类的defaultDate的实际格式。这就解决了问题。
MMM dd, yyyy hh:mm:ss a
Jan 21, 2014 10:12:12 AM