从android开始的小时和分钟

时间:2013-02-28 10:16:00

标签: java android android-date

我的java util日期为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提供了正确的结果,但始终将HH:MM

的分钟设为02

请告诉我这个功能有什么问题?

2 个答案:

答案 0 :(得分:15)

MMSimpleDateFormat中的值。你想要mm。请注意,使用HH将为您提供24小时制(00-23)...您可以使用hh进行12小时制(01-12),但您可能还需要上午/下午在这种情况下的指示符。

有关可用的各种格式说明符的详细信息,请参阅documentation for SimpleDateFormat

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

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

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

答案 1 :(得分: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();
}