相关疑难解决方法(0)

Instant和LocalDateTime有什么区别?

我知道:

  • Instant是用于计算的"技术"时间戳表示(纳秒).
  • LocalDateTime是日期/时钟表示,包括人类的时区.

仍然最终IMO都可以作为大多数应用程序用例的类型.例如:目前我正在运行一个批处理作业,我需要根据日期计算下一次运行,我很难找到这两种类型之间的优缺点(除了Instant的纳秒级精度优势和时区部分) of LocalDateTime).

您能说出一些应用示例,其中只应使用Instant或LocalDateTime吗?

编辑:注意有关精度和时区的LocalDateTime的误读文档

java datetime java-8

205
推荐指数
5
解决办法
8万
查看次数

Java SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")给出时区为IST

我有SimpleDateFormat构造函数

SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
Run Code Online (Sandbox Code Playgroud)

我正在解析字符串 "2013-09-29T18:46:19Z".

我读过这里Z表示GMT/UTC时区.但是当我在控制台上打印这个日期时,它会为返回的日期打印IST timezne.

现在我的问题是我的输出是对还是错?

java timezone date date-format simpledateformat

130
推荐指数
8
解决办法
48万
查看次数

使用Jackson从String反序列化LocalDateTime

我试图反序列化StringLocalDateTime杰克逊,但它不工作。

我有一个带有LocalDateTime字段的数据类:

@Data
public class Registration {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss")
    private LocalDateTime timestamp;
}
Run Code Online (Sandbox Code Playgroud)

我添加了特殊的Jackson数据类型模块:

compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
Run Code Online (Sandbox Code Playgroud)

序列化在以下情况下可以正常工作:

new ObjectMapper().registerModule(new JavaTimeModule()).writeValueAsString(registration);
Run Code Online (Sandbox Code Playgroud)

结果字符串:

{"timestamp":"2018-09-03 10:09:35"}
Run Code Online (Sandbox Code Playgroud)

但是反序列化不适用于:

new ObjectMapper().registerModule(new JavaTimeModule()).readValue(json.traverse(), Registration.class)
Run Code Online (Sandbox Code Playgroud)

作为错误我得到:

Cannot deserialize value of type `java.time.LocalDateTime` from String "2018-09-03 10:09:35": 
    Failed to deserialize java.time.LocalDateTime: 
        (java.time.format.DateTimeParseException) Text '2018-09-03 10:09:35' could not be parsed: 
            Unable to obtain LocalDateTime from TemporalAccessor: 
                {MinuteOfHour=9, NanoOfSecond=0, SecondOfMinute=35, MicroOfSecond=0, MilliOfSecond=0, HourOfAmPm=10},
                ISO resolved to 2018-09-03 of type java.time.format.Parsed
Run Code Online (Sandbox Code Playgroud)

我想念什么?我对序列化有效,但反序列化无效却感到困惑。


MWE …

java json jackson

2
推荐指数
2
解决办法
3765
查看次数