我在下面有这段代码:
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日。谁知道为什么???
谢谢...
答案 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