首页 > 解决方案 > java simpleDateFormat.parse("Tue, 27 Apr 2021 18:00:00 +0200") 导致 ParseException "unparsable Date" - 为什么?

问题描述

我试图将字符串解析为日期。老实说,它很简单,应该可以马上工作,但显然我太笨了。

这就是我试图解析的内容。

Date mdate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss ZZZZ").parse( "Tue, 27 Apr 2021 18:00:00 +0200" );

或相反:

Date mdate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").parse( "Tue, 27 Apr 2021 18:00:00 +0200" );

它总是导致 ParseException “无法解析的日期”

有人可以戳我的鼻子为什么这不起作用?提前致谢!

编辑: 解决方案:

我在德国机器上,因此无法解析英文格式的字符串。为此,SimpleDateFormat 需要一个 Locale 作为第二个参数。

Date mdate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss ZZZZ", Locale.ENGLISH).parse( "Tue, 27 Apr 2021 18:00:00 +0200" );

注意: 不推荐使用 SimpleDateFormat,应将其替换为 DateTimeFormatter。

标签: javadateparsingtimezonesimpledateformat

解决方案


推荐阅读