我有new Date(dateString)
用于解析日期字符串的旧代码.编译代码会产生弃用警告Date(java.lang.String) in java.util.Date has been deprecated
.
javadoc无用地建议我使用DateFormat.parse()
,即使DateFormat
该类没有静态parse
方法.
现在,我知道如何使用SimpleDateFormat
,但我想确保我得到了依赖重复的构造函数的完全相同的行为Date
.
这是我的猜测(我发布为社区维基,所以如果我是对的,你可以投票):
Date parsed; try { SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); parsed = format.parse(dateString); } catch(ParseException pe) { throw new IllegalArgumentException(pe); }
SimpleDateFormat是要走的路.但是,我是否可以指出,您可能不得不使用此方法定义一个SimpleDateFormat实例并构建Date对象.如果您这样做,请注意SimpleDateFormat不是线程安全的,您可能会遇到一些可能难以调试的问题!
我建议借此机会来看看Joda,这是一个更好的深思熟虑(和线程安全)API.它构成了JSR-310的基础,JSR-310是新提出的Java Date API.
我明白这是一项更多的工作.但是,鉴于您现在必须重构代码,这可能是值得的.