Java:Date、Calendar、Timestamp的区别、相互转换与使用

Java.util.Date

包含年、月、日、时、分、秒信息。

  1. // String转换为Date  
  2. String dateStr="2013-8-13 23:23:23";  
  3. String pattern="yyyy-MM-dd HH:mm:ss";  
  4. DateFormate dateFormat=new SimpleDateFormat(pattern);  
  5. Date date=dateFormat.parse(dateStr);  
  6. date=dateFormat.format(date);  

2 Java.sql.Date

包含年、月、日信息。

继承自Java.util.Date。在数据库相关操作中使用,如rs.getDate,ps.setDate等。rs是指ResultSet,ps是指PreparedStatement。

  1. // java.util.Date转换为java.sql.Date  
  2. new java.sql.Date(utilDate.getTime());// 其中utilDate为java.util.Date类型的对象  

3 Java.util.Calendar

包含年、月、日、时、分、秒、毫秒信息。

JDK1.1引入,用以代替java.util.Date。

  1. // Date转为Calendar  
  2. Date date=new Date();  
  3. Calendar calendar=Calendar.getInstance();  
  4. calendar.setTime(date);  
  5.   
  6. // Calendar转为Date  
  7. Calendar ca=Calendar.getInstance();    
  8. Date d =(Date) ca.getTime();  

4 Java.sql.Timestamp

包含年、月、日、时、分、秒、纳秒(nano)信息。

继承自java.util.Date。比java.sql.Date包含更多信息。在数据库相关操作中使用,如rs.getTimestamp,ps.setTimeStamp等。例如:若数据库中某字段hireDate为Oracle的Date类型,则使用getTimestamp时能够将年、月、日、时、分、秒信息取出;但使用getDate时则只能取出年、月、日信息。因此,一般推荐使用getTimestamp。

  1. // java.util.Calendar转换为java.sql.Timestamp  
  2. new Timestamp(Calendar.getInstance().getTimeInMillis());  
  3. // java.util.Date转换为java.sql.Timestamp  
  4. new Timestamp(date.getTime());  
  5. // String转换为java.sql.Timestamp,String格式:yyyy-mm-dd hh:mm:ss[.f...] ,方括号表示可选  
  6. Timestamp.valueOf("2013-07-06 01:49:30");  

5 Oracle数据库提供的日期和时间类型

Oracle数据库提供了DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE四种类型。

DATE包含世纪、年、月、日、时、分、秒信息。

TIMESTAMP是DATE的扩展,包含年、月、日、时、分、秒和fractional seconds信息。定义TIMESTAMP的格式如下:

  1. TIMESTAMP [(fractional_seconds_precision)]  
  2. // 格式  
  3. TIMESTAMP 'YYYY-MM-DD HH24:MI:SS.FF'  
  4. // 一个例子  
  5. TIMESTAMP '1997-01-31 09:26:50.12'  

其中fractional_seconds_precision是可选的,用于指定秒使用含几位小数的浮点数表示,它的取值范围是0到9,默认是6。上述例子中表示采用两位小数,它的秒值是50.12。注意:12不是毫秒值,也不是微秒值。

参考http://blog.csdn.net/kingzone_2008/article/details/9256287


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值