jdbc-⽇期格式的转换及代码⽰例
时间类型相互转换
把数据库的三种时间类型赋给java.util.Date,基本不⽤转换,因为这是把⼦类对象给⽗类的引⽤,不需要转换。
java.sql.Date date = …
java.util.Date d = date;
java.sql.Time time = …
java.util.Date d = time;
java.sql.Timestamp timestamp = …
java.util.Date d = timestamp;
当需要把java.util.Date转换成数据库的三种时间类型时,这就不能直接赋值了
这需要使⽤数据库三种时间类型的构造器。
java.sql包下的Date、Time、TimeStamp三个类的构造器都需要⼀个long类型的参数,表⽰毫秒值。
创建这三个类型的对象,只需要有毫秒值即可。我们知道java.util.Date有getTime()⽅法可以获取毫秒值,那么这个转换也就不是什么问题了。
java.utl.Date d = new java.util.Date();
java.sql.Date date = new java.sql.Time());//会丢失时分秒
Time time = new Time());//会丢失年⽉⽇
Timestamp timestamp = new Time());
3 代码
我们来创建⼀个dt表:
CREATE TABLE dt(
d DATE,
t TIME,
ts TIMESTAMP
)
下⾯是向dt表中插⼊数据的代码:
@Test
public void fun1() throws SQLException {
Connection con = Connection();java时间日期格式转换
String sql = "insert into dt value(?,?,?)";
PreparedStatement pstmt = con.prepareStatement(sql);
java.util.Date d = new java.util.Date();
pstmt.setDate(1, new java.sql.Time()));
pstmt.setTime(2, new Time()));
pstmt.setTimestamp(3, new Time()));
}
下⾯是从dt表中查询数据的代码:
@Test
public void fun2() throws SQLException {
Connection con = Connection();
String sql = "select * from dt";
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = uteQuery();
<();
java.util.Date d1 = rs.getDate(1);
java.util.Date d2 = rs.getTime(2);
java.util.Date d3 = rs.getTimestamp(3);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。