【发布时间】:2020-08-26 09:38:42
【问题描述】:
我想将以下格式的日期解析为日期:“Wed Aug 26 2020 11:26:46 GMT+0200”。但我不知道该怎么做。我试过这个:
SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss z");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = parser.parse(split[0]); //error line
String formattedDate = formatter.format(date);
我收到此错误:无法解析的日期:“2020 年 8 月 26 日星期三 11:26:46 GMT+0200”。我的日期格式错了吗?如果是这样,有人可以指出我正确的方向吗?
【问题讨论】:
-
您是否正在使用区域语言设置不是英语的系统?因为如果您不提供 SimpleDateFormat 语言环境,它将获取并使用您的系统默认语言环境,这可能不是英语,因此无法解析英语工作日名称。尝试使用
new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss z", Locale.ROOT);或Locale.ENGLISH看看错误是否仍然存在 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的OffsetDateTime和DateTimeFormatter。
标签: java date datetime time simpledateformat