3

我有一个MM/dd/yy格式的日期。我从一个 XML 文件中得到它。比如说,它是10/03/11.

我在上面执行以下代码:

try {
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
    System.out.println("dateStr: " + dateStr);
    date = sdf.parse(dateStr);
    System.out.println("dateStr After: " + sdf.format(date));
} catch(Exception e) {
    System.out.println("Error when formatting date");
}

输出是:

日期:10/03/11
dateStr 之后:10/03/0011

我似乎无法理解10/03/2011。任何想法为什么?

4

2 回答 2

12

当您解析的日期有两个字符的年份时,您simpleDateFormatter也应该yy只。

编辑:

// First convert to date object
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
System.out.println("dateStr: " + dateStr);

Date date = sdf.parse(dateStr);

SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd/yyyy");
sdf2.format(date);

// Then, format it to get 2011 with another date format.
System.out.println("dateStr After: " + sdf.format(date));
System.out.println("dateStr NEXT After: " +  sdf2.format(date));
于 2012-08-07T15:16:57.633 回答
4

这是一个解析异常...使用MM/dd/yy而不是MM/dd/yyyy.

喜欢:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy"); 
于 2012-08-07T15:17:54.590 回答