2014-06-16 68 views
2

我有这段代码如下:Java的日期和时间转换

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种diferent格式。它运行正常,但他第二格式更改日期:

OUTPUT:

16_06_2014_23_11 

29/12/2014 23:11 

正如你所看到的日期改变,从16_06_2014至29/12/2014。有人知道为什么?

谢谢...

回答

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

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