我正在尝试将字符串格式化为特定的日期格式,但转换时出现一些问题。在转换后的字符串中,月份总是“一月”。以下是代码片段:
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();
}
我无法理解这背后的原因。 请提出建议。
最佳答案
正如其他人所说,您应该使用 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
关于java - 字符串到日期格式的错误转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13698165/