mairongchao / Learning-Summary

0 stars 0 forks source link

java.util.Date,java.sql.Date,java.sql.Timestamp的区别 #6

Open mairongchao opened 7 years ago

mairongchao commented 7 years ago

java.util.Date 就是在除了SQL语句的情况下面使用, java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分 相对util下的date,多了valueof方法(将 JDBC 日期转义形式的字符串转换成 Date 值),它只能转日期部分, 所以上面说它只包含日期而没有时间部分。它都有getTime方法返回毫秒数,自然就可以直接构建 java.util.Date d = new java.util.Date(sqlDate.getTime()); 另外最重要一点,java.sql.Date是java.util.Date的子类

package java.sql;

/**
 * <P>A thin wrapper around a millisecond value that allows
 * JDBC to identify this as an SQL <code>DATE</code> value.  A
 * milliseconds value represents the number of milliseconds that
 * have passed since January 1, 1970 00:00:00.000 GMT.
 * <p>
 * To conform with the definition of SQL <code>DATE</code>, the
 * millisecond values wrapped by a <code>java.sql.Date</code> instance
 * must be 'normalized' by setting the
 * hours, minutes, seconds, and milliseconds to zero in the particular
 * time zone with which the instance is associated.
 */
public class Date extends java.util.Date {

java.sql.Timestamp相对于sql中的timestamp 它里面有valueof方法,可以把sql中的timestamp字符串转为Timestamp valueOf

public static Timestamp valueOf(String s)
    将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。
参数:
    s - 使用 yyyy-mm-dd hh:mm:ss[.f...] 格式的时间戳。可以省略小数秒。
返回:
    相应的 Timestamp 值
抛出:
    IllegalArgumentException - 如果给定的参数不具有 yyyy-mm-dd hh:mm:ss[.f...] 格式