我经常使用Date.parse(String)来解析未知格式的日期。到目前为止,我的用例似乎工作正常,但我想知道为什么它被弃用了,我是否应该避免它?文档只是说:
As of JDK version 1.1, replaced by DateFormat.parse(String s)
然而,在DateFormat中没有静态解析方法,只有an instance method,这需要一个DateFormat对象,我不会对未知的日期格式有所了解。
所以,我想知道......
答案 0 :(得分:5)
Date.parse(String)已弃用,因为它没有很好地国际化。首选SimpleDateFormat或Calendar个对象。
对于个人用途,你知道它可以很好地解析日期,你可能不需要避免它,但你应该养成使用更标准选项的习惯,如果你要写更严重的日期 - 敏感的代码。
答案 1 :(得分:1)
现在解析Date
的最简单方法是使用SimpleDateFormat,但是您需要先创建一个实例,而不再使用静态方法。
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date date = format.parse(strDate)
Date
和Calendar
编写得很糟糕,因为它们容易混淆且容易出错,它们完全被Java 8中包含的joda time
版本所取代,所以无论如何你应该再依赖这种方法,因为它很快就会被删除。
因此,如果你使用Java 8,我强烈建议你直接使用DateTimeFormat
,如果你有以前的版本,你应该使用上面提到的SimpleDateFormat
。
您需要做的是:
parse(String)
没有提出ParseException
,类似于this