3

我有 java util date 作为Thu Feb 28 15:35:00 GMT+00:00 2013

如何将其转换为HH:MM.

我正在尝试通过以下代码段执行此操作:

SimpleDateFormat formatter = new SimpleDateFormat("HH:MM");
        formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
        return formatter.format(objDate);

它给出了正确的结果,dd mmm但总是给出分钟为 02HH:MM

请建议我这个功能有什么问题?

4

2 回答 2

17

MM是 中的月份SimpleDateFormat。你想要mm。请注意,使用HH将为您提供 24 小时制 (00-23)...您可以使用hh12 小时制 (01-12),但在这种情况下您可能还需要 am/pm 指示符。

有关可用的各种格式说明符的更多详细信息,请参阅文档。SimpleDateFormat

另请注意,出于国际化目的,您可能会更好:

DateFormat formatter = DateFormat.getTimeInstance(DateFormat.SHORT, locale);

...以便它将为给定的语言环境使用适当的“短时间格式”。如果这是为了显示(人类可读)的目的,那是合适的;对于计算机可读格式,创建自定义格式很好,但我建议明确使用Locale.US以避免获取不同的日历和格式符号(例如时间分隔符)。

于 2013-02-28T10:17:10.163 回答
3

采用

String str ="Thu Feb 28 15:35:00 GMT+00:00 2013";

SimpleDateFormat formatter_from = new SimpleDateFormat("EEE MMM dd hh:mm:ss ZZ yyyy");
SimpleDateFormat formatter_to = new SimpleDateFormat("hh:mm");

try {
    java.util.Date d = formatter_from.parse(str);

    System.out.println(formatter_to.format(d));

} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-02-28T10:17:06.490 回答