【问题标题】:How to convert String to date object[without time]如何将字符串转换为日期对象[无时间]
【发布时间】:2013-06-14 11:20:51
【问题描述】:

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

我的代码是:

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

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

【问题讨论】:

    标签: java date simpledateformat


    【解决方案1】:

    Date 类表示日期时间(名称容易混淆),所以无论如何你都会得到一个时间组件。对于可用且直观的日期/时间 API 的标准建议是使用 Joda,它为您提供了这些特定模型。

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

    【讨论】:

    • +1 为 JodaTime。顺便说一句,你需要的 Joda 类是LocalDate
    【解决方案2】:

    尝试:

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

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2014-12-13
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2020-12-19
      相关资源
      最近更新 更多