一尘不染

如何在Java中格式化ISO-8601

json

我正在尝试从标准ISO
8601
格式更改2014-09-11T21:28:29.429209Z为好的MMM
d yyyy hh:mm z格式,但是我当前的代码失败。

public void setCreatedAt( String dateTime ) {

    LocalDate newDateTime = LocalDate.parse(dateTime);

    try {
        DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM d yyyy hh:mm a z");
        createdAt = newDateTime.format(format); 
    }
    catch (Exception e) {
    }

}

我正在从api接收时间和日期。


阅读 335

收藏
2020-07-27

共1个答案

一尘不染

A java.time.LocalDate是“
ISO-8601日历系统中没有时区的日期,例如2007-12-03”,因此那里没有足够的信息。使用java.time.ZonedDateTime代替。

同样,吞噬这样的异常会使得排除故障变得更加困难。当您不打算处理异常时,要么根本不捕获它,要么捕获并重新包装在RuntimeException中,然后至少将其记录(e.printStackTrace()或类似记录)。

2020-07-27