Java 什么是SimpleDataFormat模式,它像Date的不推荐的字符串构造函数一样进行解析?
我有一些代码看起来像Java 什么是SimpleDataFormat模式,它像Date的不推荐的字符串构造函数一样进行解析?,java,Java,我有一些代码看起来像“Sat May 12 04:46:05 EDT 2012”,它目前正在被java.util.Date的构造函数解析。但是,现在我在IDE中收到一条警告,因为它说它已被弃用,JavaDoc说: 不赞成。从JDK版本1.1开始,由DateFormat.parse(字符串s)代替 我尝试使用SimpleDataFormatter但是默认的格式化程序导致了一个异常,所以我想尝试使用一个模式,但是像字符串构造函数那样要解析的模式是什么 注意:这与其他类似问题不同,因为它专门询问如何
“Sat May 12 04:46:05 EDT 2012”
,它目前正在被java.util.Date
的构造函数解析。但是,现在我在IDE中收到一条警告,因为它说它已被弃用,JavaDoc说:
不赞成。从JDK版本1.1开始,由DateFormat.parse(字符串s)代替
我尝试使用SimpleDataFormatter
但是默认的格式化程序导致了一个异常,所以我想尝试使用一个模式,但是像字符串构造函数那样要解析的模式是什么
注意:这与其他类似问题不同,因为它专门询问如何替换已弃用(和流行)的构造函数,而不仅仅是询问解析任意日期字符串的帮助。模式是
EEE MMM d hh:mm:ss zzz YYYY
,因此您可以使用新的SimpleDataFormat来构造它(“EEE MMM d hh:mm:ss zzz YYYY”)
所以代码像
日期d=新日期(“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" );
编辑:从JavaDoc中可以看出,该方法
接受许多语法;
因此,对于您将遇到的所有调用,都不会有单一的匹配模式。可能需要使用来自的文档修改给定的模式。嗯..您更喜欢使用@RohitJain legacy code wi处理日期没有单元测试,因此它一定是有风险的。重写代码时,请注意SimpleDataFormat不是线程安全的。这只是一个很小的注释,这种格式也只能使用一个z
。