【发布时间】: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