令人难以置信的java时间机器

rem*_*emi 3 java date simpledateformat

使用此示例代码,我的时间/日期会发生什么变化?

package date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DateFormatTest
{
    public static void main(String args[]) throws ParseException
    {
        final String pattern = "dd/MM/YYYY HH:mm";
        final Locale locale = Locale.FRENCH;
        final SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);

        Date d = new Date();
        System.out.println("Today: " + d);

        String parsedDate = formatter.format(d);
        System.out.println("Today as string:" + parsedDate);

        Date d2 = formatter.parse(parsedDate);
        System.out.println("Today parsed back:" + d2);

    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Today: Fri Jun 28 16:28:04 CEST 2013
Today as string:28/06/2013 16:28
Today parsed back:Mon Dec 31 16:28:00 CET 2012    >>> ????
Run Code Online (Sandbox Code Playgroud)

zw3*_*324 10

pattern = "dd/MM/YYYY HH:mm";
Run Code Online (Sandbox Code Playgroud)

应该

pattern = "dd/MM/yyyy HH:mm";
Run Code Online (Sandbox Code Playgroud)

请参阅JavaDoc.

但请注意,您发布的此代码甚至不能在我的Eclipse上运行:

java.lang.IllegalArgumentException: Illegal pattern character 'Y'
Run Code Online (Sandbox Code Playgroud)

啊,Y在Java 7中添加了.但这是一周年.