我需要将当前时间作为String存储在数据库中。时间可以在不同的时区,所以我正在考虑使用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中找出时区之后,这感觉非常简单。
答案 0 :(得分:1)
是的,这将准确存储日期,并且使用.parse()方法将允许您使用ZoneDateTime的其他方法。虽然如果您希望能够对数据库使用排序功能,那么您需要手动将ZonedDateTime转换为时间戳,或者使用ORM的功能为您完成。