文章地址:http://quentinxxz.iteye.com/blog/2102010
- java.util.Date
The class Date represents a specific instant in time, with millisecond precision.
精度从javadoc 上来,Date是精确到微秒的。
值得注意的是leap second的介绍,这又是一个有趣的故事。
“国际地球自转和参考坐标系统服务(IERS)在2012年6月30日午夜(北京时间7月1号7点59分59秒)增加一闰秒(即出现7:59:60)。由于Linux kernel 2.6.29之前版本存在bug,在进行闰秒调整时可能会引起系统时钟服务ntpd进程死锁。Debian Lenny、RHEL/CentOS 5等旧发行版今天仍被广泛使用,部分供应商早已经发布了补丁。但除了Linux服务器外,一些服务器程序也因为闰秒出现了问题,如Reddit、Mozilla、FourSquare、Yelp、LinkedIn和Gawker等网站都短暂遭遇了技术问题,国内的一家云储存供应商发现运行在CentOS 6.2上的Java和MySQL因闰秒出现了不同程度的CPU利用率增长,猜测是JVM和MySQL试图通过CPU硬件晶振的数据获得当前精确的时间,由于闰秒的关系,这个时间和操作系统维持的墙上时间(Wall Time,也就是显示给用户看的时间)不一致,导致了这个问题。简单的修正方法是强制重置系统时间,让系统中所有时间回到同步的状态。”
所以Date中所有涉及年月日的操作都是Deprecated。Get方法中只有Long getTime() 方法是未Deprecated。构造方法里Date(long date) 是未Deprecated
- Java.sql.Time
Class Time
- java.lang.Object
-
- java.util.Date
-
- java.sql.Time
可见java.sql.Time是继承于java.util.Date,是用对Sql 中Time类型的支持的,其精度,是足以存放sql中的Time类型的。
- Java.sql.Timestamp
java.sql
Class Timestamp
- java.lang.Object
-
- java.util.Date
-
- java.sql.Timestamp
同样java.sql.Timestamp也是继承于java.util.Date,它是对sql中Timestamp的支持,精度达到纳秒级(具体能不能精确到1纳秒,那就要看机器了)。它是由java.util.Date与单独的纳秒数值共同组合而成的。
当传入对象不是 java.sql.Timestamp类型时, Timestamp.equals(Object) 永远不会返回 true。因为时间的纳秒部份是未知的。所以就有可能Timestamp.equals(Date date)为false, Date.equals(Timestamp)返回false的情况。Timestamp.equals(Object)与Date.equals(Object)的equals方法是不对称的。
如果需要与Date类型进行比较,使用public int compareTo(Date o)方法。
Timestamp 的hash值的计算方法如下,
(int)(this.getTime()^(this.getTime() >>> 32))
所以只包含了 java.util.Date的数值,并未使用nanos 纳秒字段。
- Java.sql.Date
同样,java.sql.Date 是对应sql中的Date类型的
相关推荐
Java 中的 Date、String 和 Timestamp 之间的转换问题 Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取...
Java 8引入的`java.time`包相比于旧的`java.util.Date`和`java.sql.Timestamp`,在性能和易用性上都有显著提升。但在数据库层面,Oracle也有优化的索引策略,如B树索引或函数索引,来提高对Timestamp with Time Zone...
- `java.util.Date`(Java的日期时间类)可以转换为`java.sql.Date`、`java.sql.Time`或`java.sql.Timestamp`,通过`SimpleDateFormat`进行格式化。 - `java.time.*`(Java 8引入的新日期时间API)的类如`...
在Java编程中,Timestamp和Date是两个常用的时间类型,前者是数据库类型,而后者是Java.util包中的类。由于它们的类型不同,因此在实际开发中,经常需要将Timestamp和Date类型相互转换。下面将详细介绍Timestamp和...
Date、String、Timestamp 是 Java 中三个常用的日期和时间类,它们之间的转换是 Java 开发中经常遇到的问题。在本文中,我们将详细介绍 Date、String、Timestamp 之间的转换方法。 Date 和 String 之间的转换 在 ...
在Java编程中,处理日期和时间是常见的任务,涉及到的主要类有`java.util.Date`、`java.sql.Timestamp`以及它们与字符串之间的转换。本文将详细介绍如何在Java中进行String、Date和Timestamp之间的相互转换。 一、...
然而,为了更好地理解和解答题目中的需求,我们可以围绕“Date的Java源代码”这一主题来展开相关的知识点。 ### 1. Java Date 类的基本概念 在Java中,`java.util.Date`类用来表示特定的时间点,即毫秒值距离1970...
Java中的Date、Calendar和Timestamp是处理日期和时间的三个核心类,它们各有特点,并且在不同的场景下有各自的优势。接下来我们将深入探讨这三个类的区别、转换方法及其在实际使用中的应用。 1. **java.util.Date**...
在 Java 中,timestamp 对应的数据类型是 java.sql.Timestamp。 varbinary 在 SQL Server 中,varbinary 是一个二进制类型,用于存储变长二进制数据。在 Java 中,varbinary 对应的数据类型是 byte 数组。 ...
java.sql.Date、java.sql.Time和java.sql.Timestamp都是java.util.Date的子类(包装类)。但是,java.sql.Date类型的值插入到数据库中Date字段中会发生数据截取。这是因为java.sql.Date只包含年月日信息,时分秒毫秒...
本文将深入探讨Java中Date的使用,包括它的功能、常见操作以及与现代日期时间API(如Java 8引入的`java.time`包)的对比。 Date类在`java.util`包下,它表示特定的瞬间,精确到毫秒。当我们创建一个Date对象时,它...
### Java中DATE与时间戳互化的知识点解析 #### 一、时间戳的基本概念 时间戳在计算机领域中通常指的是从某一固定时刻起始所经过的毫秒数,这个固定时刻通常指的是1970年1月1日00:00:00 UTC。在Java中,时间戳主要...
`java.sql.Time` 类仅包含小时、分钟和秒,而 `java.sql.Timestamp` 包含了完整的日期和时间,精度到纳秒,相当于 `java.util.Date` 的扩展。 对于字符串与 `java.sql.Date` 之间的转换,可以使用 `...
本文将深入探讨`java.util.Date`、`java.util.Calendar`、`java.sql.Date`、`java.sql.Time`和`java.sql.Timestamp`这五种日期时间类之间的区别和联系。 #### 1. `java.util.Date` `java.util.Date`类是Java中表示...
this.time = date; } ``` 例如,如果你有一个`long`类型的毫秒值,可以这样创建一个`Date`对象: ```java long timestamp = System.currentTimeMillis(); // 获取当前时间的毫秒值 Date date = new Date...
此外,`java.sql`包中还有`java.sql.Time`和`java.sql.Timestamp`类,分别用于表示时间(不包含日期)和日期时间的精确值,它们同样可以从`java.util.Date`通过`getTime()`方法转换得到。 总之,`java.util.Date`...
首先,Spring Boot默认使用Java 8中的`java.time`包,该包提供了更强大的日期时间API。为了全局配置日期和时间格式,我们需要在`application.properties`或`application.yml`配置文件中添加相应的配置项。例如,如果...
- `java.sql.Date`, `java.sql.Time`, `java.sql.Timestamp`是专为数据库操作设计的,分别对应SQL中的Date, Time, Timestamp类型。 - `java.util.Calendar`提供了日历相关的计算和操作,功能更全面。 - `java.text....
在 Java 中,日期时间类型对应的是 java.sql.Date、java.sql.Time、java.sql.Timestamp 等类型。在 MySql 中,日期时间类型对应的是 DATE、TIME、DATETIME、TIMESTAMP 等类型。其中,DATE 类型用于存储日期,TIME ...