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愉快的访问数据库了。,
Tips:本站所有资源均收集自互联网,分享目的仅供学习参考,资源版权归该资源的合法拥有者所有。
Tips:若本站所发布的资源侵犯到您的合法权益,请及时联系 hqteam@qq.com 删除!
暂无评论内容