Java日期格式
||
具有String str \“ May 23 2011 12:20:00 \”,想要将其转换为这样的日期:
Date date = (new SimpleDateFormat(\"MMM dd yyyy HH:mm:ss\")).parse(str);
它始终为我提供ParseException Unparsable日期格式:\'May 23 2011 12:20:00 \'。
寻找类似的问题,似乎一切正确。
怎么了?
没有找到相关结果
已邀请:
5 个回复
骚瓤
辰炔诚薯
提孺局缎
播匣扦阔食
使用java.time Andreas Krueger接受的答案是正确的。您必须指定“ 3”来确定翻译月份名称时使用的人工语言。最好养成在日期时间工作中始终指定语言环境的习惯。 现代方法避免了麻烦的旧日期时间类,而使用了它们的替代品java.time类。
使用
类定义格式以匹配输入。 “ 3”确定(a)用于翻译日名,月名等的人类语言,以及(b)决定缩写,大写,标点,分隔符等问题的文化规范。
您的输入没有任何时区或从UTC偏移的指示。因此,我们将其解析为
。
ldt.toString():2011-05-23T12:20:00 关于java.time java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧的传统日期时间类,例如
,
和
。 现在处于维护模式的Joda-Time项目建议迁移到java.time类。 要了解更多信息,请参见Oracle教程。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310。 在哪里获取java.time类? Java SE 8,Java SE 9和更高版本 内置的 标准Java API的一部分,具有捆绑的实现。 Java 9添加了一些次要功能和修复。 Java SE 6和Java SE 7 java.time的许多功能在ThreeTen-Backport中都被反向移植到Java 6和7。 安卓系统 ThreeTenABP项目专门针对Android改编了ThreeTen-Backport(如上所述)。 请参阅如何使用ThreeTenABP…。 ThreeTen-Extra项目使用其他类扩展了java.time。该项目为将来可能在java.time中添加内容提供了一个试验场。您可能会在这里找到一些有用的类,例如
,
,
等。
艰管垮淮