我正在尝试将字符串格式化为特定的日期格式,但转换时存在一些问题。在转换后的字符串月总是“1月”。以下是代码段:
String date = "30/10/2012-11:11:11";
DateFormat dateForm = new SimpleDateFormat("dd/mm/yyyy-hh:mm:ss");
try {
System.out.println(dateForm.parse(date));
}
catch (ParseException e) {
e.printStackTrace();
}
我无法理解这背后的原因。 请建议。
答案 0 :(得分:3)
正如其他人所说,你应该使用MM
几个月 - 我强烈怀疑你总是想要使用HH
几个小时,而不是hh
。 HH
是24小时制; hh
是12小时制,通常与AM / PM指示符一起使用。
最后,您应该考虑您希望SimpleDateFormat
使用的时区和区域设置。即使在没有任何月份或日期名称的情况下,我仍然会明确指定语言环境,以明确您不尝试使用任何本地化数据。
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy-HH:mm:ss", Locale.US);
// TODO: Set the time zone appropriately
答案 1 :(得分:2)
使用MM
代替mm
作为格式字符串的日期部分。 mm
是几分钟,而不是几个月。
参考:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
答案 2 :(得分:1)
请使用"dd/MM/yyyy-hh:mm:ss"