1

考虑这段代码: -

        String t = "2013-10-05 09:10:37.029074";
        Timestamp ts = Timestamp.valueOf(t);

        Date d = new Date(ts.getTime());
        Timestamp ts2 = new java.sql.Timestamp(d.getTime());
        System.out.println("ts -->"+ts);
        System.out.println("ts2-->"+ts2);

当我运行它时,我得到的结果为。

ts -->2013-10-05 09:10:37.029074           ts2-->2013-10-05 09:10:37.029

我不想忽略 misecods(请参阅 029074 和 029 之间的差异)。好像是圆的。

我什至想保留分数。

4

3 回答 3

5

该类Date只有毫秒精度。它不能存储更高的精度。

Javadocs 用于Date

Date 类表示特定的时间瞬间,精度为毫秒。

于 2013-10-24T22:35:14.177 回答
5

Timestamp具有纳秒精度。java.sql.Datejava.util.Date都只有毫秒精度。一旦您将其中任何一个Date带入游戏,您将失去精确度。

所以只要保持Timestamp周围并抓住它的毫秒getTime来做你需要做的任何事情,但要确保你抓住它。

于 2013-10-24T22:49:45.387 回答
3
于 2018-04-04T21:35:43.253 回答