SimpleDateFormat缺少时间

时间:2014-11-09 00:22:43

标签: java simpledateformat

我有一个奇怪的问题。下面的代码在while循环中执行几次。现在,每隔一段时间,这个sdf.parse会返回小时,分钟和秒的0。日期的一个例子看起来像这样......

2014:3:7:8:0
2014:3:7:9:0
2014:3:7:10:0
2014:3:7:11:0
2014:3:7:12:0  * This returns 0's
2014:3:7:13:0
2014:3:7:14:0

以下是代码。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:M:d:h:m");
sdf.setTimeZone(TimeZone.getDefault());
Date sTime = null;
try {
    sTime = sdf.parse(start);
} catch (ParseException e) {
    e.printStackTrace();
    return null;
}

2 个答案:

答案 0 :(得分:2)

我认为小时位置的12以12h格式读取,因此与0相同。在模式中尝试H而不是h

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:M:d:H:m");

答案 1 :(得分:2)

'h'表示1-12格式的小时。如果你想要0-23格式,你应该使用'H'(大写)。此外,您无需显式设置默认时区,因为默认情况下它等于TimeZone.getDefault()。