java.text.DateFormat df = new java.text.SimpleDateFormat("hhmm");
java.util.Date date1 = df.parse(parts[12]);
java.util.Date date2 = df.parse(parts[13]);
long diff = (date2.getTime() - date1.getTime());
int timeinminutes = (int) (diff/(1000*60));
我有一系列的时间,我正在离开一个列中的网站。时间格式如下:1040,1149与我的代码一起使用。但是有些时候被格式化为945或656(军事时间)会弄乱我的代码我应该如何格式化它谢谢!
答案 0 :(得分:1)
一种简单的方法就是在零件字符串中添加前导0。例如:
if(parts[12].length == 3)
parts[12] = "0"+parts[12];
如果您正在尝试阅读军事时间而不是12小时制,则需要将模式修改为“HHmm”。 “HH”表示24小时,“hh”表示12小时。您可以在Oracle documentation中找到完整列表。
答案 1 :(得分:0)
我会这样做(创建2个新变量来保存两个日期的时间)。此外,由于你正在使用军事时间,你需要使用大写HH,它告诉你的日期格式使用24小时制。
java.text.DateFormat df = new java.text.SimpleDateFormat("HHmm");
// Create 2 new variables to hold the date parts (times)
String dp1 = (parts[12].length == 3) ? "0" + parts[12] : parts[12];
String dp2 = (parts[13].length == 3) ? "0" + parts[13] : parts[13];
java.util.Date date1 = df.parse(dp1);
java.util.Date date2 = df.parse(dp2);
long diff = (date2.getTime() - date1.getTime());
int timeinminutes = (int) (diff/(1000*60));