我使用以下代码段从String获取Date。
//class org.apache.commons.lang3.time.FastDateFormat
FastDateFormat fdf = FastDateFormat.getInstance("yyyyww");
Object ob = fdf.parseObject("201701", new ParsePosition(1));
java.util.Date d = (java.util.Date) ob;
System.out.println(d);
还通过调用parseObject(String)方法完成了使用。但在调查API代码后,我发现它创建了PArsePosition对象,同时在其构造函数中传递了0,该构造函数已在代码中处理,从而引发异常。
//class org.apache.commons.lang3.time.FastDateFormat
FastDateFormat fdf = FastDateFormat.getInstance("yyyyww");
Object ob = fdf.parseObject("201701", new ParsePosition(1));
java.util.Date d = (java.util.Date) ob;
System.out.println(d);
下面的文档提到存在parse()方法,但是没有可用的。
使用parseObject()可以得到如上所述的结果。
API中的parseObject()方法如下所示,始终返回null。
请告知替代方法或某些稳定版本。
答案 0 :(得分:0)
升级版本的问题得到解决。
我们实际上使用Maven来获取依赖项。它存在以下内容:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3</version>
</dependency>
早些时候,我正在努力做到这一点:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang</artifactId>
<version>3.6</version>
</dependency>
这是一个版本问题,在使用Maven时可能更多的问题。
感谢@Hugo在问题评论中提供的帮助。
答案 1 :(得分:0)
在棒棒糖之前的设备KK 4.4.4上也解决了此错误。 使用SimpleDateFormat。
示例:
SimpleDateFormat ISO8601DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.GERMANY);
String date = dateString.replaceAll("\\+0([0-9]){1}\\:00", "+0$100");
return ISO8601DATEFORMAT.parse(date);