我的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
请告诉我这个功能有什么问题?
答案 0 :(得分:15)
MM
是SimpleDateFormat
中的月值。你想要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();
}