java - 如何解析 '21Jul12'这样的日期字符串

标签 java date dataformat

如何解析“21Jul12”等日期字符串。我尝试过以下方法:

import org.apache.commons.lang.time._

DateUtils.parseDate("21Jul12", Array("ddMMMyy"));

但由于错误而无法工作:

java.text.ParseException: Unable to parse the date: 21Jul21
    at org.apache.commons.lang.time.DateUtils.parseDateWithLeniency(DateUtils.java:359)
    at org.apache.commons.lang.time.DateUtils.parseDate(DateUtils.java:285)
    at .<init>(<console>:20)
    at .<clinit>(<console>)
    at .<init>(<console>:11)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
    at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
    at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
    at java.lang.Thread.run(Thread.java:662)

即使我使用java.text.SimpleDateFormat,我也遇到了类似的异常:

java.text.ParseException: Unparseable date: "21Jul12"
    at java.text.DateFormat.parse(DateFormat.java:337)
    at .<init>(<console>:13)
    at .<clinit>(<console>)
    at .<init>(<console>:11)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
    at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
    at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
    at java.lang.Thread.run(Thread.java:662)

最佳答案

这是要解析上述日期的代码

System.out.println("ddMMMyy >>>" + DateUtils.parseDate("21Jul12", new String[] { "ddMMMyy" }));

System.out.println("yyyy-MM-dd >>>" + DateUtils.parseDate("2012-07-21", new String[] { "yyyy-MM-dd" }));

System.out.println("yyyy MMM dd >>>" + DateUtils.parseDate("2012 Jul 21", new String[] { "yyyy MMM dd" }));

以及控制台上的结果

ddMMMyy >>>Sat Jul 21 00:00:00 CEST 2012
yyyy-MM-dd >>>Sat Jul 21 00:00:00 CEST 2012
yyyy MMM dd >>>Sat Jul 21 00:00:00 CEST 2012

也许您尝试用“ddMMMyy”解析“2012 Jul 21”

System.out.println("ddMMMyy >>>" + DateUtils.parseDate("2012 Jul 21", new String[] { "ddMMMyy" }));

给出你的堆栈

java.text.ParseException: Unable to parse the date: 2012 Jul 21
at org.apache.commons.lang.time.DateUtils.parseDateWithLeniency(DateUtils.java:359)
at org.apache.commons.lang.time.DateUtils.parseDate(DateUtils.java:285)
at com.collibra.dgc.core.model.activity.impl.TestTree.testname(TestTree.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

关于java - 如何解析 '21Jul12'这样的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12419759/

相关文章:

c++ - 在 Qt 中将公历日期转换为波斯日期 (jalali)

machine-learning - SVM文件格式说明

java - Apache-poi 模板前导零在编辑单元格时消失

java - 要求 FutureTask 在取消之前启动

java - 在 JavaFX TextArea 中突出显示字符串

java - 当我在sql中使用inner join命令时,如何使用spring JdbcTemplate接收一个对象而不是多个对象?

javascript - Node.js 中的 UTC 字符串

java - 增强型 switch 语句可以有多个赋值吗?

php - 重新排序数据库结果

java - 如何在Java中将字节数组写入二进制文件