解決java.sql.Timestamp丟失精度的問題
java.sql.Timestamp丟失精度
Timestamp的構造函數Timestamp(long time) 會丟失納秒部分的精度
需要重新補償
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 可以精確到小數秒 一般存儲的格式:2016-12-18 11:05:36.531
Timestamp 可以獲取當前時間,也可以把字符串裝換成Timestamp類型
1. 獲取當前時間
@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類型轉換為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轉換為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); } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 教你使用Java獲取當前時間戳的詳細代碼
- Java技能點之SimpleDateFormat進行日期格式化問題
- 詳解Java關於JDK中時間日期的API
- Java常用類之日期相關類使用詳解
- Java 時間格式轉換之impleDateFormat與Data API解析與使用