2013-06-26 76 views
9

如何轉換2013-06-24至2013年6月24日?我正在使用下面的代碼。將yyyy-mm-dd轉換爲dd mm yyyy

date1="2013-06-24"; 
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

try{ 
date2 = d.parse(date1); 
}catch (ParseException e1) { 
// TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

但我得到這個錯誤 「java.text.ParseException:無法解析的日期: 」2013年6月24日「(在偏移4)」

回答

32

需要兩個DateFormat情況下格式化你解析日期。

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); 
DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy"); 
String inputDateStr="2013-06-24"; 
Date date = inputFormat.parse(inputDateStr); 
String outputDateStr = outputFormat.format(date); 
+0

非常感謝你,現在工作。 – user1740281

+0

非常感謝 –

1

變化

SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd"); 

你必須遵循date1模式。一來解析原來String,另一個輸出你想要的:然後你就可以用

new SimpleDateFormat("dd MMM yyyy"); 
+0

我改變了它,但我得到這個答案「週一6月24日00:00:00北京時間2013」​​ – user1740281

+0

感謝您的答覆。 – user1740281

2

查看第一個問題是您對String和Date使用了不同的分隔符。 因此,無論是在字符串中執行「2013-06-24」還是「2013 06 24」,或者對新的SimpleDateFormat(「dd-MMM-yyyy」)執行新的SimpleDateFormat(「dd MMM yyyy」)。

而第二個問題是,你不能直接修改的格式像這樣,在字符串您有年月日期格式,所以首先做一個Date對象格式同比改變爲以下你想要的格式:

date1="2013-06-24"; 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 

Date dt = format.parse(date1); 

SimpleDateFormat your_format = new SimpleDateFormat("dd-MMM-yyyy"); 

date2 = your_format.format(dt); 
1
public String getStringFormatted(String datestring) { 
    String format = "dd MM yyyy"; 
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); 
    return sdf.format(new Date(datestring.replaceAll("-", "/"))); 
}