当前位置:  开发笔记 > 编程语言 > 正文

Java中不推荐使用Date(String s)的完全等价物?

如何解决《Java中不推荐使用Date(Strings)的完全等价物?》经验,为你挑选了2个好方法。

我有new Date(dateString)用于解析日期字符串的旧代码.编译代码会产生弃用警告Date(java.lang.String) in java.util.Date has been deprecated.

javadoc无用地建议我使用DateFormat.parse(),即使DateFormat该类没有静态parse方法.

现在,我知道如何使用SimpleDateFormat,但我想确保我得到了依赖重复的构造函数的完全相同的行为Date.



1> itsadok..:

这是我的猜测(我发布为社区维基,所以如果我是对的,你可以投票):

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);
}


请相信,永远不要做"新的IllegalgArgumentException()":O.至少链原始异常(new IllegalArgumentException(pe)).

2> Brian Agnew..:

SimpleDateFormat是要走的路.但是,我是否可以指出,您可能不得不使用此方法定义一个SimpleDateFormat实例并构建Date对象.如果您这样做,请注意SimpleDateFormat不是线程安全的,您可能会遇到一些可能难以调试的问题!

我建议借此机会来看看Joda,这是一个更好的深思熟虑(和线程安全)API.它构成了JSR-310的基础,JSR-310是新提出的Java Date API.

我明白这是一项更多的工作.但是,鉴于您现在必须重构代码,这可能是值得的.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有