1

我有一个字符串,其中包含 YYYYMMDD 格式的日期(例如 20130614),我想将其转换为日期并打印为:“日月日年”(例如 2013 年 6 月 14 日星期五)。我尝试使用 SimpleDateFormat 执行此操作,但它返回日期和时间(我不想要时间)(例如 Fri Jun 14 00:00:00 EET 2013)。

我的代码是:

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

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

4

2 回答 2

5

该类Date表示日期时间(名称容易混淆),因此无论如何您都将获得时间组件。可用且直观的日期/时间 API 的标准建议是使用Joda,它为您提供这些特定模型。

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

于 2013-06-14T11:22:07.020 回答
0

尝试:

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");  
Date data = new Date(format.parse(tmpValue).getTime());  
于 2013-06-14T11:25:45.023 回答