Java日期和时间转换

use*_*748 2 java time date

我在下面有这段代码:

private final static String DATE_TIME_FORMAT_FILE = "dd_MM_YYYY_HH_mm";
private final static String DATE_TIME_FORMAT_DATA = "dd/MM/YYYY HH:mm";

String sdfDateTimeData = null;
    Calendar calData = Calendar.getInstance();
    SimpleDateFormat sdfFile = new SimpleDateFormat(DATE_TIME_FORMAT_FILE);
    SimpleDateFormat sdfData = new SimpleDateFormat(DATE_TIME_FORMAT_DATA);
    String sdfDateTimeFile = sdfFile.format(calData.getTime());

    try {
        Date dt = sdfFile.parse(sdfDateTimeFile);
        sdfDateTimeData = sdfData.format(dt);
    } catch (ParseException e1) {
        e1.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

我想将相同的日期和时间转换为2种不同的格式.它运行正常但第二种格式改变了日期:

OUTPUT:

16_06_2014_23_11

29/12/2014 23:11
Run Code Online (Sandbox Code Playgroud)

如您所见,日期从16_06_2014更改为2014年12月29日.谁知道为什么???

谢谢...

Rob*_*sen 5

大写Y代表"周年".您y的格式需要小写.

这是SimpleDateFormatjavadoc.它向您展示了如何创建模式,这就是您的模式应该是这样的:

private final static String DATE_TIME_FORMAT_FILE = "dd_MM_yyyy_HH_mm";
private final static String DATE_TIME_FORMAT_DATA = "dd/MM/yyyy HH:mm";
Run Code Online (Sandbox Code Playgroud)