Joda DateTime与Instant的区别

25

我正在使用 Joda,并且正在创建一个类来存储交易时间戳并将其持久化到数据库中。我应该使用 Instant 还是 DateTime

1个回答

29

使用最适合您的模型。 Instant 是一个毫秒级时间戳值的表示形式,DateTime 是基于日历的对象。每个都可以轻松地转换为另一个,因此没有必要根据数据库的需求限制您的模型。

因此,您需要问自己 - 我实际上正在建模的是什么数据?它是年/月/日/小时/分钟/秒等值,还是只是没有特定含义的任意时刻?


3
请注意,DateTime和Instant共享同一个基类(AbstractInstant)。 - Aram Kocharyan
1
我同意这个答案。我只想补充一点,当你不确定的时候,使用 DateTime。过于关注毫秒通常会导致挫败和错误,因为日期时间是一个棘手的问题。 - Basil Bourque
DateTime也具有毫秒级的精度。 - nob
2
@skaffman,我不理解你的最后一句话“它是年/月/日/小时/分钟/秒等值,还是只是一个没有特定含义的任意时刻?”。无论我存储的是什么,都有特定的含义,不是吗?我仍然不确定该选择哪个。 - krookedking
4
@krookedking,我认为他的意思是你是否在存储一些只有机器才能理解的内容,还是人类正在查看的年/月/日等信息? - Matt Sgarlata
3
这很启示性。http://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html - Duncan McGregor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接