我有时会被java中不同的Date类型及其实际用法所困惑。这里 我试图总结一下我的理解Date vs TimeStamp vs calendar?
java.sql.Date :-
围绕一个毫秒值,它允许JDBC将该类标识为SQL DATE值瘦包装
java.sql.Timestamp :-
java.util.Date瘦包装器,它允许JDBC API将其标识为SQL TIMESTAMP值。它增加了保留SQL TIMESTAMP小数秒值的功能,允许将小数秒的规格 精确到几纳秒
我已经看到大多数项目更喜欢Timestamp而不是日期。我认为这样做的主要原因是时间戳可以保持数值直到 纳秒精度,而数据可以保持到毫秒。正确?
Calendar :-
此类设计为日期操作,例如: - 用于在某一特定时刻和 组日历字段,诸如年,月,DAY_OF_MONTH,HOUR之间转换,等等,以及用于操纵该日历字段,如获得 下周的日期。尽管我不知道为什么这个类是抽象的,只有一个实现存在,即GregorianCalendar。
当你说“日期类型”我收集你的意思是'java.util.Date'(这不是问了什么,但仍然相关)。符合[罗勒Bourque的答案](https://stackoverflow.com/a/32975887/5772882)我说使用'java.time.Instant'来代替。 –