java.sql.Timestamp丢失精度 解决java.sql.Timestamp丢失精度的问题
天已青色等烟雨来 人气:0想了解解决java.sql.Timestamp丢失精度的问题的相关内容吗,天已青色等烟雨来在本文为您仔细讲解java.sql.Timestamp丢失精度的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java.sql.Timestamp,丢失精度,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); } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容