好的,这很简单,但似乎做了一些我不明白的事情。我想要做的是获得一个时间,例如下午12:30,以及超时,比如说下午1点,并计算它们之间的小时数。由于某种原因,它给了我10个小时的差异(设置时间与打卡和超时打卡,这两个都是日期字符串)。我想知道我是否可以格式化日期错误?这是代码:
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);
}
}
}
答案 0 :(得分:0)
变化
MMM DD, YYYY HH:mm:ss a
到
MMM dd, yyyy hh:mm:ss a
假设您的String输入类似于
Jan 21, 2014 10:12:12 AM
查看强>