千家信息网

如何解决java.sql.Timestamp丢失精度的问题

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,如何解决java.sql.Timestamp丢失精度的问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java.sql
千家信息网最后更新 2025年01月31日如何解决java.sql.Timestamp丢失精度的问题

如何解决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. 获取当前时间

@Testpublic 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

@Testpublic void stringConvertTimestamp(){        String timeStr = "2016-12-18 11:16:33.706";        Timestamp ts = Timestamp.valueOf(timeStr);        System.out.println(ts);}

3.Timestamp转换为String类型

@Testpublic 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);        }}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0