【发布时间】:2020-04-20 17:05:46
【问题描述】:
我从 wicket 获得了 Java 无法转换的日期格式:
Mon Apr 20 00:00:00 CEST 2020
问题在于 CEST 不是 Java 支持的时区。我已经尝试过 CST 什么应该起作用,但它没有。错误是:
无法解析的日期:“Mon Apr 20 00:00:00 CST 2020”
代码:
DateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd", Locale.GERMANY);
dateFormat.parse("Mon Apr 20 00:00:00 CST 2020");
System.out.println(dateFormat.format(new Date()));
我需要将此日期转换为 JSON 格式,以便 yyyy-MM-dd。
我该怎么做?
【问题讨论】:
-
您使用什么代码进行转换?请通过编辑将其添加到您的问题中(提供了代码格式化工具)。
-
我添加了代码
-
我建议你不要使用
DateFormat、SimpleDateFormat和Date。这些类的设计很差而且已经过时了,尤其是前两个是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的ZonedDateTime和DateTimeFormatter。 -
真的吗?你问为什么模式
"yyyy-MM-dd"不能解析文本"Mon Apr 20 00:00:00 CST 2020"。他们看起来甚至有点相似吗?文本"2020-04-20"将符合该模式。