Java中Date,Calendar,Timestamp的区别以及相互转换与使用
程序员文章站
2023-12-20 13:35:04
1 java.util.date包含年、月、日、时、分、秒信息。复制代码 代码如下:// string转换为datestring datestr="2013-8-13 23...
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不是毫秒值,也不是微秒值。