java向mysql传递日期

2019-10-22  本文已影响0人  callme周小伦

查看该文对传递数据库有了一定的了解
Java 向数据库中输入 datetime类型数据
可以通过java.sql.Datejava.sql.Timestamp两个类向mysql写入日期,这两个类都是java.util.Date的子类

public class Timestamp extends java.util.Date
public class Date extends java.util.Date
  1. 首先使用java.sql.Timestamp
pstmt.setTimestamp(3,new Timestamp(new java.util.Date().getTime()));
//pstmt.setTimestamp(3,new Timestamp(System.currentTimeMillis()));

其构造函数分别有

public Timestamp(int year, int month, int date,
                     int hour, int minute, int second, int nano) {
        super(year, month, date, hour, minute, second);
        if (nano > 999999999 || nano < 0) {
            throw new IllegalArgumentException("nanos > 999999999 or < 0");
        }
        nanos = nano;
    }
public Timestamp(long time) {
        super((time/1000)*1000);
        nanos = (int)((time%1000) * 1000000);
        if (nanos < 0) {
            nanos = 1000000000 + nanos;
            super.setTime(((time/1000)-1)*1000);
        }
    }

第一种方法分别传递各个位置信息,主要看一下第二种构造方法,我们需要传递一个long类型的数据,因此当我们向mysql传递当前日期时,需要使用new java.util.Date().getTime()获取当前时间的long值,这里注意需要添加完整名称来区分java.util.Date()java.sql.Date()

  1. 接下来看一下java.sql.Date,他继承了java.util.Date,其构造方法为
public Date(int year, int month, int day) {
        super(year, month, day);
    }

public Date(long date) {
        // If the millisecond date value contains time info, mask it out.
        super(date);

    }

第一种比较简单,第二种构造方法同样也是传递一个long值,其实质是调用了java.util.Date的构造方法

上一篇 下一篇

猜你喜欢

热点阅读