解決java.sql.Timestamp丟失精度的問題
java.sql.Timestamp丟失精度
Timestamp的構(gòu)造函數(shù)Timestamp(long time) 會丟失納秒部分的精度
需要重新補(bǔ)償
Timestamp t1 = Timestamp.valueOf("2019-12-13 15:19:53.2202080");
Timestamp t2 = new Timestamp(1576250393220208000L / 1000000L);
t2.setNanos((int) (1576250393220208000L % 1000000000L));
java.sql.Timestamp類的使用
Timestamp 可以精確到小數(shù)秒 一般存儲的格式:2016-12-18 11:05:36.531
Timestamp 可以獲取當(dāng)前時間,也可以把字符串裝換成Timestamp類型
1. 獲取當(dāng)前時間
@Test
public void getCurrentTime(){
//第一種
Date date = new Date();
Timestamp currentTime1 = new Timestamp(date.getTime());
System.out.println("currentTime1:"+currentTime1);
//第二種
Timestamp currentTime2 = new Timestamp(System.currentTimeMillis());
System.out.println("currentTime2:"+currentTime2);
}
2.String類型轉(zhuǎn)換為Timestamp
@Test
public void stringConvertTimestamp(){
String timeStr = "2016-12-18 11:16:33.706";
Timestamp ts = Timestamp.valueOf(timeStr);
System.out.println(ts);
}
3.Timestamp轉(zhuǎn)換為String類型

@Test
public void timestampConvertString(){
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
String timeStr = sdf.format(currentTime);
System.out.println(timeStr);
}
整個演示類的代碼:
package com.demo;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.junit.Test;
public class DemoTimestamp {
@Test
public void getCurrentTime(){
//第一種
Date date = new Date();
Timestamp currentTime1 = new Timestamp(date.getTime());
System.out.println("currentTime1:"+currentTime1);
//第二種
Timestamp currentTime2 = new Timestamp(System.currentTimeMillis());
System.out.println("currentTime2:"+currentTime2);
}
@Test
public void stringConvertTimestamp(){
String timeStr = "2016-12-18 11:16:33.706";
Timestamp ts = Timestamp.valueOf(timeStr);
System.out.println(ts);
}
@Test
public void timestampConvertString(){
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
String timeStr = sdf.format(currentTime);
System.out.println(timeStr);
}
}
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring FreeMarker整合Struts2過程詳解
這篇文章主要介紹了Spring FreeMarker整合Struts2過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
Spring AOP面向切面編程實(shí)現(xiàn)原理方法詳解
這篇文章主要介紹了Spring AOP面向切面編程實(shí)現(xiàn)原理方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
Java使用BIO和NIO進(jìn)行文件操作對比代碼示例
這篇文章主要介紹了Java使用BIO和NIO進(jìn)行文件操作對比代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
SpringBoot項(xiàng)目使用協(xié)同過濾的實(shí)現(xiàn)
協(xié)同過濾是一種常用的推薦系統(tǒng)算法,用于預(yù)測用戶可能喜歡的物品,本文主要介紹了SpringBoot項(xiàng)目使用協(xié)同過濾的實(shí)現(xiàn),感興趣的可以了解一下2023-09-09
SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用
EhCache?是一個純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點(diǎn)。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本2022-08-08
mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式
這篇文章主要介紹了mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

