使用 SimpleDateFormat 转换日期时出错

Error comverting date using SimpleDateFormat

我想将格式为 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)

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

请注意,它在异常中显示 "offset 3",这是第四个字符(我们从零开始计数)。那是月份字符串。

此外,您使用 "dd" 作为年份格式而不是 "yyyy"。

最初的格式有错别字。应该是"dd MMM yyyy"。其次,语言环境设置为意大利,这意味着输入月份应该是意大利语,而不是英语。或者您应该更改语言环境参数。