【发布时间】:2017-07-19 10:49:53
【问题描述】:
我正在使用以下 sn-ps 来从字符串中获取日期。
//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。
请提供替代方法或一些稳定版本的建议。
【问题讨论】:
-
什么是
201701?如果是年份和月份,则您的模式是错误的(应该是yyyyMM而不是yyyyww):docs.oracle.com/javase/7/docs/api/java/text/… -
如果
parse方法不可用,可能您使用的不是文档中提到的版本。 -
@Hugo 格式是年和周。好的,正在研究更多版本(这个是 2.6)。
-
我可以在 3.6 版本中找到
parse方法