java - 如何正确解析SimpleDateFormat?

标签 java date

我的代码有这个异常:

<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="214b4057400f554459550f72484c514d4465405544674e534c4055611513444414154b4057400f554459550f7140535244645942445155484e4f" rel="noreferrer noopener nofollow">[email protected]</a>: Unparseable date: "Fri Dec 25 02:00:00 EET 2020"

@PostMapping
public ResponseEntity<?> addEvent(@Valid @RequestBody Event event) {
    try {
        SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
        format1.parse(String.valueOf(event.getDate()));
        format1.setLenient(false);
        eventService.save(event);
        return new ResponseEntity<>(event, HttpStatus.CREATED);
    } catch (IllegalArgumentException | ParseException e) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
}

由于日期格式定义正确。这里可能出了什么问题? 提前致谢。

最佳答案

您必须设置区域设置,如下所示:

SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

因为您的输入字符串中有Fri Dec,并且您的默认区域设置可能不是英语

关于java - 如何正确解析SimpleDateFormat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60813716/

相关文章:

java - Java 中使用 jnlp.jar 进行文件关联,没有完整的 JWS?

java - 调车场算法实现中优先级值的含义

java - 简单的定时器程序

python - 两个设备故障之间的日期差异

php - strtotime() 将一个不存在的日期转换为另一个日期

java - 通过 ProcessBuilder Java 找不到 shp2pgsql、psql 命令

java - 如何关闭 UDP 服务器而不引发异常?

javascript - Moment() 与预定义的 Moment() 日期

mysql - SQL : Having with calculation on some parameters

c# - 用于比较 IEnumerable 中的 List<DateTime> 的 Linq 查询