posts - 310, comments - 6939, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

将java.util.Date 转成 java.sql.Date

Posted on 2007-09-30 13:36 诗特林 阅读(9236) 评论(6)  编辑  收藏 所属分类: Java
将java.util.Date 转成 java.sql.Date

(作个记号)

import java.sql.*;
import java.util.*;

public class cs{
public static void main(String[] args)
  
{
  GregorianCalendar date_1
=(GregorianCalendar)Calendar.getInstance();
  System.out.println(date_1.getTime());
  java.sql.Date date_2
= new java.sql.Date((date_1.getTime()).getTime
     ()); 
  System.out.println(date_2);
  }

}


评论

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2007-09-30 13:51 by 千里冰封
呵呵,java.sql.Date本来就是java.util.Date的子类啊

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2007-10-07 12:22 by leson
其实,从类的继承关系上看,java.util.Date类是java.sql.Date类的super类。所以java.sql.Date可以当作java.util.Date来使用,只是JDK docs上强调最好理解为这两个类之间没有什么继承关系。

至于两者之间的转换,有一个很简单的方法。
因为两者都提供了一个long型的构造函数,两者通过getTime重新构造一下就行了。
即:
java.util.Date date1 = ...;
java.sql.Date date2 = ...;

date1 = new java.sql.Date(date2.getTime());
date2 = new java.util.Date(date1.getTime());

虽然java.sql.Date在JDBC中不能接受时间,只能接受日期,但只要通过long型构造函数传进去的,再弄出来也是不会丢失的。

在数据库时间建模和操纵时习惯用java.sql.Timestamp,与数据库中DateTime对应,但业务流通层,还是习惯只用java.util.Date,因为这些时间直接的转换都是一样的方便,而且这样做逻辑理解上比较直观。

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2011-08-24 15:08 by JJJ
@千里冰封
""呵呵,java.sql.Date本来就是java.util.Date的子类啊""


怎么会是它的了类呢,文档你有没有看过的啊,不要误人

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2012-07-26 12:33 by sd
@JJJ
是 子类。。

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2015-01-15 17:33 by yezi
new Timestamp(util.date().getTime());绝对正确

# re: 将java.util.Date 转成 java.sql.Date   回复  更多评论   

2015-01-15 17:35 by yezi
pst.setTimestamp(1,new Timestamp( new java.util.Date().getTime()));

时间戳 setTimestamp 保存!

只有注册用户登录后才能发表评论。


网站导航: