【问题标题】:Error comverting date using SimpleDateFormat使用 SimpleDateFormat 转换日期时出错
【发布时间】:2015-08-05 15:06:46
【问题描述】:

我想将格式为 dd MMM yyyy(2015 年 5 月 23 日)的日期转换为 yyyy-MM-dd。

我正在使用的代码:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM dd", Locale.ITALY);
try {
    Date varDate = simpleDateFormat.parse(date);
    simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ITALY);
    date = simpleDateFormat.format(varDate);
} catch (ParseException e) {
    e.printStackTrace();
}

转换前的可变日期:2015 年 5 月 23 日 转换后:2015-05-23

很遗憾,我遇到了一个错误:

java.text.ParseException: Unparseable date: "23 May 2015" (at offset 3)

【问题讨论】:

  • 一个包含当前日期的字符串,格式为 dd MMM yyyy
  • @qwertz 我认为他的意思是“您传递给此方法的变量 date 中包含的实际值是什么”。是“2015 年 5 月 23 日”吗?

标签: java date format runtime-error simpledateformat


【解决方案1】:

我想你会发现,在意大利语中,May 是“Maggio”。

请注意,它在异常中表示“偏移量 3”,即第四个字符(我们从零开始计数)。那是月份字符串。

此外,您的年份格式为“dd”,而不是“yyyy”。

【讨论】:

  • 哦,现在完全有道理了。谢谢 :) 可以在 2 分钟内接受答复
  • 没问题。现在我知道“DiMaggio”是什么意思了。
【解决方案2】:

起初,原始格式有一个错字。它应该是“dd MMM yyyy”。其次,语言环境设置为意大利,这意味着输入月份应该是意大利语,而不是英语。或者您应该更改语言环境参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多