Tag: java.time.instant

如何在MySQL数据库中存储Java Instant

使用Java Date对象,最简单的方法是将它们存储为MySql DateTime对象(以UTC格式)。 切换到Instant这种方法将不再起作用,因为MySQL DateTime不提供存储纳秒的精度。 只是截断它们可能会导致新创建的Instant对象与从数据库中读取的对象之间出现意外的比较结果。 BigDecimal时间戳不会让我觉得它是一个优雅的解决方案:在MySql Workbench中编写select查询会变得更加困难,因为你必须在任何地方转换时间戳以使其可读,并且Java中的处理与Instant或甚至Long相比有点笨拙值。 什么是最好的方式去这里? 可能不是varchar ,对吗?

Java – 将java.time.Instant转换为没有Zone偏移的java.sql.Timestamp

在我正在开发的应用程序中,我需要将java.time.Instant对象转换为java.sql.Timestamp。 当我创建Instant对象时,例如 Instant now = Instant.now(); 并检查元素。 我收到类似2017-03-13T14:28:59.970Z然后我尝试创建如下的Timestamp对象: Timestamp current = Timestamp.from(now); 当我检查元素时。 我收到类似2017-03-13T16:28:59.970Z的相同结果,但增加了2小时的偏移。 任何人都可以解释你的这种情况,并为我提供答案如何解决这个问题而没有抵消? 当我这样创建时: LocalDateTime ldt = LocalDateTime.ofInstant(Instnant.now(), ZoneOffset.UTC); Timestamp current = Timestamp.valueOf(ldt); 一切正常。 但我尽量避免转换。 有没有办法只使用Instant对象?