服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - JAVA教程 - Java中Date,Calendar,Timestamp的区别以及相互转换与使用

Java中Date,Calendar,Timestamp的区别以及相互转换与使用

2019-10-12 11:50java教程网 JAVA教程

以下是对Java中Date,Calendar,Timestamp的区别以及相互转换与使用进行了详细的介绍,需要的朋友可以过来参考下

1 Java.util.Date
包含年、月、日、时、分、秒信息。

复制代码代码如下:

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


2 Java.sql.Date
包含年、月、日信息。
继承自java.util.Date。在数据库相关操作中使用,如rs.getDate,ps.setDate等。rs是指ResultSet,ps是指PreparedStatement。

复制代码代码如下:

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


3 Java.util.Calendar
包含年、月、日、时、分、秒、毫秒信息。
JDK1.1引入,用以代替java.util.Date。

复制代码代码如下:


// Date转为Calendar
Date date=new Date();
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);

 

// Calendar转为Date
Calendar ca=Calendar.getInstance();  
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。

复制代码代码如下:

// java.util.Calendar转换为java.sql.Timestamp
new Timestamp(Calendar.getInstance().getTimeInMillis());
// java.util.Date转换为java.sql.Timestamp
new Timestamp(date.getTime());
// String转换为java.sql.Timestamp,String格式:yyyy-mm-dd hh:mm:ss[.f...] ,方括号表示可选
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的格式如下:

复制代码代码如下:

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


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

延伸 · 阅读

精彩推荐
  • JAVA教程如何利用Ganymed SSH-2模拟SSH操作

    如何利用Ganymed SSH-2模拟SSH操作

    这几天看SFTP资料时,无意中看到了Ganymed SSH-2,写了个简单demo,通过,感觉挺好用的,下面就和大家分享下。需要的朋友可以过来参考参考 ...

    脚本之家1102019-10-11
  • JAVA教程log4j的使用详细解析

    log4j的使用详细解析

    最近在整理公司产品的日志输出规范,涉及log4j的使用介绍,就简单整理了一下。需要的朋友可以过来参考参考 ...

    java之家4142019-10-11
  • JAVA教程java实现简单音乐播放器

    java实现简单音乐播放器

    这篇文章主要为大家详细介绍了java实现简单音乐播放器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    StrictModel4672019-06-28
  • JAVA教程java rocketmq--消息的产生(普通消息)

    java rocketmq--消息的产生(普通消息)

    这篇文章主要介绍了java rocketmq--消息的产生(普通消息),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋...

    有爱jj2572019-06-26
  • JAVA教程java swing实现QQ账号密码输入框

    java swing实现QQ账号密码输入框

    这篇文章主要为大家详细介绍了Java swing实现QQ账号密码输入框,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    MH_ANG4292019-06-28
  • JAVA教程Java通过CMD方式读取注册表任意键值对代码实践

    Java通过CMD方式读取注册表任意键值对代码实践

    这篇文章主要介绍了Java通过CMD方式读取注册表任意键值对代码实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    yaominghui4472019-06-26
  • JAVA教程Java中final关键字的深入探究

    Java中final关键字的深入探究

    这篇文章主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的...

    justdojava5112019-07-08
  • JAVA教程Spring AOP手动实现简单动态代理的代码

    Spring AOP手动实现简单动态代理的代码

    今天小编就为大家分享一篇关于Spring AOP手动实现简单动态代理的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟...

    sweet_sauce2622019-06-22