Java日期和时间转换

时间:2014-06-16 03:17:06

标签: java date time

我在下面有这段代码:

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

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

输出:

16_06_2014_23_11

29/12/2014 23:11

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

谢谢...

2 个答案:

答案 0 :(得分:5)

大写Y代表“周年”。您的格式需要小写y

这是javadoc for SimpleDateFormat。它向您展示了如何创建模式,这就是您的模式应该是这样的:

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

答案 1 :(得分:0)

尝试使用yyyy:

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

而不是dd / MM / YYYY