0

我环顾四周,找不到任何符合我需要的东西。

我得到以下字符串:

"March 13, 2013"

并需要将其转换为

"2013-03-13"

我尝试使用此代码:

    SimpleDateFormat inputFormat = new SimpleDateFormat("MMMMMMMMMM dd, YYYY");
    SimpleDateFormat outputFormat = new SimpleDateFormat("YYYY-MM-dd");
    Date d = inputFormat.parse(startDate);
    System.out.println(outputFormat.format(d));

但我得到“203-12-30”.. 为什么会这样?

4

3 回答 3

3

Y代表周年。尝试使用y

SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
于 2013-11-11T17:37:33.330 回答
1

我只是复制并粘贴了你的代码,做了一些小的改动,得到了你想要的结果。我所做的主要更改是将 inputFormat 和 outputFormat 中的大写“Y”更改为小写“y”。不管怎样,你在这里:

String startDate = "March 13, 2013";
SimpleDateFormat inputFormat = new SimpleDateFormat("MMMMMMMMMM dd, yyyy");
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");

try {
    Date d = inputFormat.parse(startDate);
    System.out.println(outputFormat.format(d));
} catch (ParseException e) {
    e.printStackTrace();
}
于 2013-11-11T17:40:41.357 回答
0

试试下面的代码:

String startDate = "March 13, 2013";
    SimpleDateFormat inputFormat = new SimpleDateFormat("MMMM dd, yyyy",Locale.ENGLISH);
    SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date d = inputFormat.parse(startDate);
    System.out.println(outputFormat.format(d));
于 2013-11-11T17:40:23.967 回答