Java中的Date.parse()可以安全使用吗?如果没有,有没有可行的替代方案



我经常使用Date.parse(String)来解析未知格式的日期。到目前为止,它似乎适用于我的用例,但我想知道为什么它被弃用,以及我是否应该避免它?文件只是说:

As of JDK version 1.1, replaced by DateFormat.parse(String s)

然而,DateFormat中没有静态解析方法,只有一个实例方法,它需要一个DateFormat对象,对于未知的日期格式,我不会有这个对象。

所以,我想知道。。。

  • Java设计人员是否有任何关于他们为什么选择弃用它的官方声明
  • 如果到目前为止,这种方法对我的用例来说很好,那么我是否可以依赖于未来版本的Java中提供的这种功能
  • 有没有一种可行的替代方案不被否决,用于解析多种常见日期格式之一的字符串

Date.parse(String)已被弃用,因为它没有很好地国际化。SimpleDateFormat或Calendar对象是首选对象。

对于你知道它能很好地解析日期的个人用途,你可能不需要避免它,但如果你要写更严肃的日期敏感代码,你可能应该养成使用更标准选项的习惯。

现在解析Date最简单的方法是使用SimpleDateFormat,但您需要首先创建一个实例,因为不再有静态方法了。

SimpleDateFormat format = new SimpleDateFormat(pattern);
Date date = format.parse(strDate)

DateCalendar写得很糟糕,因为它们令人困惑且容易出错,它们意味着要完全被Java 8中包含的joda time版本所取代,所以无论如何,你都应该再依赖这个方法,因为它很快就会被删除。

所以如果你使用Java 8,我强烈建议你直接使用DateTimeFormat,如果你有以前的版本,你应该使用上面提到的SimpleDateFormat

你需要做的是:

  1. 列出代码中需要支持的所有模式
  2. 将它们放入集合或数组中
  3. 然后测试它们中的每一个,直到方法parse(String)没有引发ParseException,类似于

相关内容

最新更新