2013-01-09 19 views
0

日期我在Java中的以下字符串:Cnvert字符串在Java

2011-12-21T20:27:32-08:00 

任何一个可以告诉我,我怎么保存这个字符串通过将其转换为日期?

我需要将它存储在声明为TimeStamp的MySQL列中。

我试过以下,但它不工作:

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz").parse("2011-12-21T20:27:32-08:00"); 

它提供了以下错误:

Exception in thread "main" java.text.ParseException: Unparseable date: "2011-12-21T20:27:32-08:00" – 

任何帮助深表感谢。

+4

“不起作用”是什么意思? –

+0

给出错误:线程“main”中的异常java.text.ParseException:Unparseable date:“2011-12-21T20:27:32-08:00” –

+0

@FreephonePanwal我会更新您的问题以包含它,即使它是已经得到回答,它可以帮助其他人。 –

回答

3

据,z预计时区指标比在你的字符串不同的格式,但可以使用X相反,它支持他们。所以(变化是在格式字符串的结尾):

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX").parse("2011-12-21T20:27:32-08:00"); 

the docs

 
Letter Date or Time Component Presentation   Examples 
------ ----------------------- ------------------- ------------------------------------- 
z  Time zone    General time zone Pacific Standard Time; PST; GMT-08:00 
Z  Time zone    RFC 822 time zone -0800 
X  Time zone    ISO 8601 time zone -08; -0800; -08:00

Daniel Kaplan在评论中指出,X似乎是新的。您可能需要预先处理字符串以删除冒号,并根据您的环境使用Z(大写,而不是z;上面列表中的第二个)。

+1

请注意'X'是新的。 [至少它不在JDK6的文档中](http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) –

+1

@DanielKaplan:谢谢! –

+0

我不清楚。 X似乎在为我工作。如果我使用X将代码部署到生产,会有什么影响? –