我需要将当前时间作为字符串存储在数据库中。时间可以在不同的时区,所以我正在考虑使用 Java SE 8 的新 ZonedDateTime 类。
我注意到 toString() 方法会自动输出:
2016-04-15T17:40:49.305-05:00[America/Chicago]
这似乎也可以被 ZonedDateTime.parse() 读取并转换为正确的值。
如果我所做的只是存储这些值并且我不需要将值转换为用户可读的格式,那么我需要做的就是准确地存储具有适当时区的数据吗?例如,如果我通过存储它们的 toString() 表示将两个 ZonedDateTimes 插入到 SQL 数据库中,然后我使用 ZonedDateTime.parse() 读取这些时间,我是否可以期望 isAfter() 和 isBefore() 之类的东西正常工作美好的?
还是我错过了两者之间的一步?在试图找出 Java 7 中的时区之后,这感觉太容易了。