如何将String转换为日期对象[没有时间]

时间:2013-06-14 11:20:51

标签: java date simpledateformat

我有一个字符串,其中包含YYYYMMDD格式的日期(例如20130614),我想将其转换为日期并打印出来:'Day Month Day Year'(例如2013年6月14日星期五)。 我尝试用SimpleDateFormat做这个,但它返回日期和时间(我不想要时间) (例如,Eri Jun 14 00:00:00 EET 2013)。

我的代码是:

String tmpValue = "20130614";
Date date = (Date) new SimpleDateFormat("yyyyMMdd").parse(tmpValue);

另外,我希望在打印后将其转换回YYYYMMDD格式的String。有可能吗?

2 个答案:

答案 0 :(得分:5)

Date类表示日期时间(令人困惑地命名),因此您将获得时间组件。可用且直观的日期/时间API的标准建议是使用Joda,它为您提供这些特定模型。

要回答第二个问题,您可以再次使用SimpleDateFormat将其转换回字符串(请查看文档)。和以前一样,我会推荐Joda,因为SimpleDateFormat类(反直觉)不是线程安全的!

答案 1 :(得分:0)

尝试:

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");  
Date data = new Date(format.parse(tmpValue).getTime());