这篇文章主要介绍了解决java.sql.Timestamp丢失精度的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录
java.sql.Timestamp丢失精度需要重新补偿java.sql.Timestamp类的使用1.获取当前时间2.线类型转换为时间表3 .时间戳转换为线类型
java.sql.Timestamp丢失精度
时间戳的构造函数时间戳(长时间)会丢失纳秒部分的精度
需要重新补偿
时间戳t1=时间戳。的值(' 2019-12-13 15:19:53.2202080 ');
时间戳t2=新时间戳(1576250393220208000 l/1000000 l);
T2。setnanos((int)(1576250393220208000 l % 1000000000 l));
java.sql.Timestamp类的使用
Timestamp 可以精确到小数秒 一般存储的格式:2016-12-18 11:05:36.531
时间戳可以获取当前时间,也可以把字符串装换成时间戳类型
1. 获取当前时间
@测试
public void getCurrentTime(){
//第一种
Date Date=new Date();
时间戳当前时间1=新时间戳(日期。gettime());
系统。出去。println('当前时间1:'当前时间1 ');
//第二种
时间戳当前时间2=新时间戳(系统。当前时间毫秒());
系统。出去。println('当前时间2:'当前时间2 ');
}
2.String类型转换为Timestamp
@测试
public void string convertimestamp(){
string timeStr=' 2016-12-18 11:16:33.706 ';
时间戳ts=时间戳。的值(timeStr);
系统。出去。println(ts);
}
3.Timestamp转换为String类型
@测试
public void timestampConvertString(){
简单日期格式SDF=新的简单日期格式(“yyy-MM-DD HH:MM:ss”);
时间戳当前时间=新时间戳(系统。当前时间毫秒());
string timeStr=SDF。格式(当前时间);
系统。出去。println(timeStr);
}
整个演示类的代码:
包com.demo
导入Java。SQL。时间戳;
导入Java。文字。简单的日期格式;
导入Java。util。日期;
导入org。朱尼特。测试;
公共类DemoTimestamp {
@测试
public void getCurrentTime(){
//第一种
Date Date=new Date();
时间戳当前时间1=新时间戳(日期。gettime());
系统。出去。println('当前时间1:'当前时间1 ');
//第二种
时间戳当前时间2=新时间戳(系统。当前时间毫秒());
系统。出去。println('当前时间2:'当前时间2 ');
}
@测试
public void string convertimestamp(){
string timeStr=' 2016-12-18 11:16:33.706 ';
时间戳ts=时间戳。的值(timeStr);
系统。出去。println(ts);
}
@测试
public void timestampConvertString(){
简单日期格式SDF=新的简单日期格式(“yyy-MM-DD HH:MM:ss”);
时间戳当前时间=新时间戳(系统。当前时间毫秒());
string timeStr=SDF。格式(当前时间);
系统。出去。println(timeStr);
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。