【问题标题】:java convert string pattern to datejava将字符串模式转换为日期
【发布时间】:2022-01-05 12:16:11
【问题描述】:

如何在java中将字符串转换为日期,我有这样的字符串,我从数据库中获取

2011 年 8 月 12 日晚上 8:17:46

我使用了不同的 SimpleDateFormat 但我无法转换它,我得到了

java.text.ParseException:无法解析的日期:

这是我的代码示例:

SimpleDateFormat sdf = new SimpleDateFormat("MMM d, YYYY, 'T'HH:mm:ss.SSS");
    try{
        Date date = sdf.parse("Aug 12, 2011, 8:17:46 PM");
        System.out.println(date);
    }
    catch(Exception pe){
        System.out.println(pe);
    }

【问题讨论】:

  • 您的模式说必须有一个T 在小时之前,并且小时表示为 24 小时值,并且您有毫秒但没有 am/pm 说明符。你的价值根本不符合这一点。我还强烈建议使用新的 java.time 包而不是 java.util.Date 和 java.text.SimpleDateFormat。
  • 模式与String 的格式不匹配:String 没有T,因此您不必在模式中转义一个。一天中的时间显然是 12 小时格式,因此您不应该让模式考虑 24 小时格式,并且您的模式需要几分之一秒,但 String 不提供任何时间。我建议深入了解java.time 的文档,或者至少深入了解java.text.SimpleDateFormat 的文档。
  • SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy, hh:mm:ss a");

标签: java date simpledateformat


【解决方案1】:

我设法通过使用使其工作

日期时间格式化程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2013-12-28
    • 2012-07-02
    相关资源
    最近更新 更多