`

Jave 中Date Time Timestamp的关系

    博客分类:
  • java
阅读更多

文章地址: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
java.sql

Class Time

      可见java.sql.Time是继承于java.util.Date,是用对Sql 中Time类型的支持的,其精度,是足以存放sql中的Time类型的。

 

  • Java.sql.Timestamp

     java.sql

Class 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之间的转化问题

    mysql时间类型对应的java类型1

    Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型 datejava.sql.Date Datetimejava.sql

    在Java中String和Date、Timestamp之间的转换

    主要介绍了在Java中String和Date、Timestamp之间的转换 的相关资料,需要的朋友可以参考下

    java四种时间的区别和联系

    java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time, java.sql.Timestamp区别和联系

    Oracle中TIMESTAMP的几种类型介绍与实例

    我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。这篇文章主要介绍了Oralce中TIMESTAMP的...

    DateUtils.java 日期处理相关工具类

    timestamp = new SimpleDateFormat(DATE_FULL_STR).parse(date).getTime(); } catch (ParseException e) { e.printStackTrace(); } return timestamp; } /** * 将指定的日期转换成Unix时间戳 * ...

    xfire测试项目(包括复杂数据类型)

    public java.sql.Timestamp getTimestamp(java.sql.Timestamp a); public java.sql.Date getSDate(java.sql.Date a); public java.sql.Time getTime(java.sql.Time a); /*自定义类型*/ public UserBean getUser...

    Java对象序列化和反序列化工具Xson.zip

    24.java.sql.Timestamp 25.InetAddress 26.Inet4Address 27.Inet6Address 28.InetSocketAddress 1.使用xson进行对象到字节数组的序列化 User user = new User(); //set.... byte[] data = XSON.write...

    Golang中使用Date进行日期格式化(沿用Java风格)

    本文介绍了Golang中使用Date进行日期格式化,分享给大家,具体如下: Github https://github.com/noogo/date Date Date是一个基于time包装的一个日期包,通过此包可以快速创建日期、获取时间戳、毫秒数及最重要的...

    java时间处理工具类--DateUtils

    import java.sql.Timestamp; public class DateUtils { /** * 时间范围:年 */ public static final int YEAR = 1; /** * 时间范围:季度 */ public static final int QUARTER = 2; /** * 时间...

    java与mysql日期类型的问题

    通过java向mysql中插入datetime类型的数据: String sql = "INSERT INTO wp_posts ( post_date )VALUES(?)"; PreparedStatement pstmt = connection.prepareStatement(sql); Timestamp time = new Timestamp...

    JAVA时间处理类

    import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.apache....

    解析MySql与Java的时间类型

    MySql的时间类型有 Java中与之对应的时间类型date java.sql.DateDatetime java.sql.TimestampTimestamp java.sql.TimestampTime java.sql.TimeYear 

    SqlMap自动生成小工具SqlMapAutoGen1.0

    rules.put("java.util.Date", "TIMESTAMP"); 在SqlMapAutoGen类的构造函数中,可以自行修改 3)预先定义了模板 temple.xml (请放在D:/test 目录下) temple.xml定义了insert、update和delete方法 模板中定义了一系列的...

    Oracle数据库SQL基本应用与介绍

    Oracle是能够安装在目前为止所有的计算机上并...日期型、期间型:date、timestamp、timestamp with time zone等。 Oracle数据库对象:cluster、数据库联接、触发器、外部程序库、索引、Java类、演算子、表、视图等等

    joda-time-mybatis:Joda时间类型的Mybatis映射

    笔记 为该项目寻找新的维护者。 我不再在工作中使用Joda或Mybatis,因此更新该项目的动力很低。... datetime timestamp with time zone ); POJO / VO public class FooVO { private LocalDate local

    Hibernate注释大全收藏

    @TemporalType.(DATE,TIME,TIMESTAMP) 分别Map java.sql.(Date, Time, Timestamp). @Lob 注解属性将被持久化为 Blog 或 Clob 类型。具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 ...

    python-mysql day03.txt

    4、timestamp # 不给值默认返回系统当前时间 2、日期时间函数 1、NOW() 2、CURDATE() 3、CURTIME() 4、YEAR(字段名) 5、DATE(字段名) 6、TIME(字段名) 7、日期时间运算 select ... from 表名 where 字段...

    hive函数大全(中文版)

    一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: <> 4 3. 小于比较: 4. 小于等于比较: 5. 大于比较: > 5 6. 大于等于比较: >= 5 7. 空值判断: IS NULL 5 8. 非空判断: IS NOT NULL 6 9. LIKE比较: LIKE 6 10. ...

    Oracle jdbc for 11g 最新版 驱动 ojdbc6.jar

     包括ARRAY, BFILE, DATE, INTERVALDS, NUMBER, STRUCT, TIME,TIMESTAMP,TIMESTAMP等。  ojdbc5.jar: 适用于jdk5  ojdbc6.jar: 适用于jdk6  ***_g.jar 只是用javac -g编译,生成所有调试信息,其它全一样  ...

Global site tag (gtag.js) - Google Analytics