【问题标题】:incorrect conversion of String into date format将字符串错误地转换为日期格式
【发布时间】:2012-12-04 07:40:58
【问题描述】:

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

    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();
    }

我无法理解这背后的原因。 请提出建议。

【问题讨论】:

标签: java date simpledateformat


【解决方案1】:

正如其他人所说,您应该使用 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

【讨论】:

    【解决方案2】:

    使用MM 而不是mm 作为格式字符串的日期部分。 mm 是几分钟,而不是几个月。

    参考:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

    【讨论】:

      【解决方案3】:

      请使用"dd/MM/yyyy-hh:mm:ss"

      【讨论】:

      • hh 几乎可以肯定是不合适的。
      • 同意他的意思是 24 小时制(似乎他没有使用上午/下午),谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 2014-01-18
      • 2019-10-13
      相关资源
      最近更新 更多