java - 字符串到日期格式的错误转换

标签 java date simpledateformat

我正在尝试将字符串格式化为特定的日期格式,但转换时出现一些问题。在转换后的字符串中,月份总是“一月”。以下是代码片段:

    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 几个小时,而不是的hhHH 是 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/

相关文章:

java - SimpleDateFormat 解析非日期字符串

java - 如何摆脱这个 "The import com.google.gwt cannot be resolved"

Java:使用 `Math.sin()` 时可能会丢失精度

string - 如何使用时间包将时间格式化为 “2nd Jan 2006”时间格式的字符串

java - 转换 GMT 日期时间字符串

java - 如何将日期设置为韩国或其他任何地方的当天?

Java多线程访问同一个变量

java - 使用 Jax-RS 发布

javascript - 使用原生 JS 获取本地化的月份名称

ruby - 如何计算自 Ruby 中给定日期以来的周数?