Java日期和时间转换

3

我有下面这段代码:

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

我希望将相同的日期和时间转换为两种不同的格式。程序可以正常运行,但第二种格式会改变日期:
输出:
16_06_2014_23_11

29/12/2014 23:11

您可以看到日期从16_06_2014变成了29/12/2014。有人知道为什么吗?

谢谢...

2个回答

5
大写字母Y代表“周年”,你需要在格式中使用小写字母y
这里是SimpleDateFormat的javadoc文档。它向你展示如何创建你的格式,这就是你的格式应该看起来的样子:
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";

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接