3

我有一些看起来像"Sat May 12 04:46:05 EDT 2012"当前正在由java.util.Date's 的Date(String s)构造函数解析的代码。但是,现在我在 IDE 中收到警告,因为它说它已被弃用并且 JavaDoc 说:

已弃用。从 JDK 1.1 版开始,由 DateFormat.parse(String s) 取代。

我尝试使用SimpleDateFormatter但默认格式化程序导致异常,所以我想尝试使用模式,但是像 String 构造函数那样解析的模式是什么?


注意:这与其他类似问题不同,因为它专门询问替换已弃用(和流行)的构造函数,而不仅仅是请求帮助解析任意日期字符串。

4

1 回答 1

3

该模式是EEE MMM d hh:mm:ss zzz YYYY您可以使用new SimpleDateFormat("EEE MMM d hh:mm:ss zzz YYYY").

所以像这样的代码

日期 d = new Date("2012 年 5 月 12 日星期六 04:46:05 EDT");

可以改写为:

DateFormat df = new SimpleDateFormat( "EEE MMM d hh:mm:ss z YYYY" );
Date d = df.parse( "Sat May 12 04:46:05 EDT 2012" );

编辑:java.util.Date.parse(String s)JavaDoc 事实证明,该方法accepts many syntaxes;不会为您将遇到的所有调用提供单一匹配模式。可能需要使用来自java.text.SimpleDateFormat.

于 2013-01-16T19:53:42.537 回答