java.sql.timestamp(java中timestamp转化)

java.sql.Timestamp(时刻戳)

承继父类:java.util.Date

所有已实现的接口:Serializable,Cloneable,Comparable

主要结构办法:Timestamp(longmillis)运用毫秒时刻值结构Timestamp目标。

Timestamp答应JDBCAPI将该类标识为SQLTIMESTAMP值。它通过答应小数秒到纳秒级精度的规范来添加保存SQLTIMESTAMP小数秒值的才能。

Timestamp也供给支持时刻戳值的JDBC转义语法的格局化和解析操作的才能,主要用于写一些与数据库衔接时的日期处理。

例如:

在ResultSet中咱们常常运用的setDate或getDate的数据类型是java.sql.Date,而在平常java程序中咱们一般习惯运用java.util.Date。

但是java.sql.Date只存储日期数据不存储时刻数据,这种契合规范的类型其实并没有把时分秒存进数据库,所以存取时就应该用Timestamp的setTimestamp()和

getTimestamp()。

整理一:String–>Timestamp:

Timestamp转换为String能够直接.toString(),但有时分显现时是不需求小数位后边的毫秒值,需求借助DateFormat在转换为String时从头定义格局。

运用Timestamp的valueOf()办法,

[java]viewplaincopy

Timestamptime=newTimestamp(System.currentTimeMillis());//获取系统当前时刻

SimpleDateFormatdf=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);

StringtimeStr=df.format(time);

time=Timestamp.valueOf(timeStr);

System.out.println(time);//2017-05-0615:54:21.0

整理二:java.util.Date–>Timestamp

办法1:运用Timestamp的结构办法

[java]viewplaincopy

Datedate=newDate();

Timestampts=newTimestamp(date.getTime());

办法2:

注意:父类不能直接向子类转化,需求借助中间的String,而且format的格局要与Timestamp的字符串类型格局相匹配

java.lang.IllegalArgumentException:Timestampformatmustbeyyyy-mm-ddhh:mm:ss[.fffffffff]
[java]viewplaincopy

Datedate=newDate();

DateFormatsdf=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);

StringdateStr=sdf.format(date);

Timestampts=Timestamp.valueOf(dateStr);//2017-05-0615:54:21.0

整理三:

通过结构办法创建Timestamp目标,获取毫秒值有下面三种办法:

办法1:

System.currentTimeMillis();

办法2:

Calendar.getInstance().getTimeInMillis();

办法3:

newDate().getTime();

测验证明:System.currentTimeMillis()这种办法速度最快

Calendar.getInstance().getTimeInMillis()这种办法速度最慢,由于Canlendar由于要处理时区问题会消耗很多的时刻。

所以建议多运用第一种办法。

办法摘要

booleanafter(Timestampts)

指示此Timestamp目标是否晚于给定的Timestamp目标。

booleanbefore(Timestampts)

指示此Timestamp目标是否早于给定的Timestamp目标。

intcompareTo(Dateo)

将此Timestamp目标与给定的Date(有必要为Timestamp目标)相比较。

intcompareTo(Timestampts)

将此Timestamp目标与给定Timestamp目标相比较。

booleanequals(Objectts)

测验此目标是否等于给定的Timestamp目标。

booleanequals(Timestampts)

测验此Timestamp目标是否等于给定的Timestamp目标。

intgetNanos()

获取此Timestamp目标的nanos值。

longgetTime()

返回此Timestamp目标表明的自1970年1月1日00:00:00GMT以来的毫秒数。

voidsetNanos(intn)

将此Timestamp目标的nanos字段设置为给定值。

voidsetTime(longtime)

设置此Timestamp目标,以表明1970年1月1日00:00:00GMT以后time毫秒的时刻点。

StringtoString()

运用JDBC时刻戳转义格局编列时刻戳。

staticTimestampvalueOf(Strings)

将运用JDBC时刻戳转义格局的String目标转换为Timestamp值。

实例代码:

[java]viewplaincopy

tLotteryAnnouncement.setDateTime(newTimestamp(System.currentTimeMillis()));

if(StringUtils.isNotBlank(tIsusesKj.getOpenTime())){

tLotteryAnnouncement.setOpenTime(Timestamp.valueOf(tIsusesKj.getOpenTime()));

}else{

tLotteryAnnouncement.setOpenTime(newTimestamp(tIsusesKj.getModifyDate().getTime()));

}

java中timestamp转化

初学Java被这个Timestamp快搞吐了,主要是Java的这个类型与数据库中自带的Timestamp类型兼容而且还能精确达到详细时分秒,所以想省掉点转化的麻烦就用的这个,网上的大部分介绍显得较为杂乱,然后被一篇百度经历拯救了,大致如下:

String类型转化为Timestamp类型——比如如下:

//界说一个String类型实体str保存你要的时刻,格局如下(以2018年5月6号10点30分40秒为例)

Stringstr=”2018-05-0610:30:40″;

//用Timestamp的valueOf办法转化为Timestamp实体

Timestamptime=Timestamp.valueOf(str);

Timestamp转化String类型——比如如下:

//就如下一句代码,其间time为Timestamp类型的实体(就默许是上一个比如的time吧),这就得到对应的String类型

Stringstrn=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”).format(time);

然后就可以用和其他根底类型一样的方式使用jdbc愉快的访问数据库了。,

© 版权声明
THE END
喜欢就支持一下吧
点赞48赞赏 分享
评论 抢沙发

请登录后发表评论