2013-07-06 135 views
1

我有一個問題,我如何將一個字符串如20130706123020轉換爲日期對象。 所以我什麼字符串20130706123020轉換爲日期對象看起來像:Java日期,字符串轉換爲日期對象

2013-07-06 12:30:20

嘗試代碼:

String date = "20130706234310"; 
Date date1 = new SimpleDateFormat("yyyy-m-d H:m:s").parse(date); 
System.out.println(date1); 

任何建議將不勝感激。

謝謝!

+0

你到目前爲止嘗試了什麼? –

+0

我已經嘗試過了,但是我得到了以下錯誤:java.text.ParseException:Unparseable date:「20130706234310」 – Liviu

+0

我試過SimpleDateFormat和DateTimeFormat – Liviu

回答

4

你必須首先parseString使用parse方法從SimpleDateFormat

然後通過由parse方法返回到另一個SimpleDateFormat,然後使用format方法得到你想要的格式的日期Date對象。

String s = "201307061230202"; 

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS"); // format in which you get the String 
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // format in which you want the date to be in 
System.out.println(sdf1.format(sdf.parse(s))); 

HHhhKKkk在小時字段中的意義是不同的。我已經使用HH您可以根據您的要求使用。

H Hour in day (0-23) 
k Hour in day (1-24) 
K Hour in am/pm (0-11) 
h Hour in am/pm (1-12) 
1

使用本:

long int my_date = 20130706123020L

,之後:

String date_Text = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(my_date));

+0

這不會編譯...'錯誤:整數太大:20130706123020' – user000001

+0

你使用「Long int」嗎? – pooyan

+0

是的,如果您將其更改爲'long my_date = 20130706123020L;'它編譯。看起來編譯器希望將數字解釋爲一個「int」,如果最後省略了「L」。 – user000001

1

使用SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); 
Date date = sdf.parse("20130706123020"); 
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

System.out.println(sdf2.format(date));