我应该在这些时间使用什么类型的十进制格式?

时间:2014-02-28 20:56:56

标签: java date format

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(军事时间)会弄乱我的代码我应该如何格式化它谢谢!

2 个答案:

答案 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));