SimpleDateFormat:解析后小时数为HH

时间:2013-09-25 13:40:44

标签: java android datetime simpledateformat

我的String2013-8-25, 16:33,现在需要将其转换为Date。为此,我使用:

Date mDate = new SimpleDateFormat("yyyy-MM-dd, HH:mm").parse("2013-8-25, 16:33");

然后我需要得到一个String正确的模式,这是

private static final String DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";

以下是我的工作方式:

  public static String convertDateToString(Date date) {
        String string = DateFormat.format(DATE_PATTERN, date).toString();
        Logger.logVerbose(TAG, "Date converted into String is " + string);
        return string;
    }

但:

Date converted into String is 2013-08-25THH:33:00.SSSZ

为什么小时仍在HH?谢谢!

1 个答案:

答案 0 :(得分:1)

我强烈怀疑您遇到与DateFormat的兼容性问题。特别是,从文档:

  

此类中的格式方法实现Unicode UTS#35模式的子集。此类当前支持的子集包括以下格式字符:acdEHhLKkLMmsyz。最高API级别17,仅支持adEhkMmszy。请注意,为了向后兼容,这个类错误地实现了k,好像它是H一样。

我建议您使用SimpleDateFormat进行格式化,以避免此问题。