2013-07-06 136 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));