3

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

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);

    }
}

输出:

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    >>> ????
4

2 回答 2

10
pattern = "dd/MM/YYYY HH:mm";

应该

pattern = "dd/MM/yyyy HH:mm";

请参阅JavaDoc

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

java.lang.IllegalArgumentException: Illegal pattern character 'Y'

啊,Y是在 Java 7 中添加的。但它是weekyear

于 2013-06-28T14:34:32.767 回答
1

一点解释,但只是一个猜测,如果我错了,请纠正我。

作为对周年的解释,我猜想解析 2013 年的周年(由于错误的模式 2013 -> YYYY )以某种方式将整个日期设置为 2013 年的第一周年,即 2012 年 12 月 31 日星期一。

于 2013-06-28T14:58:25.270 回答