Java日期和时间戳

nav*_*nav 1 java timestamp date

考虑一下这段代码: -

        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);
Run Code Online (Sandbox Code Playgroud)

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

ts -->2013-10-05 09:10:37.029074           ts2-->2013-10-05 09:10:37.029
Run Code Online (Sandbox Code Playgroud)

我不想忽视milisecods(请参阅029074和029之间的差异).这似乎是四舍五入.

我想保留甚至分数.

rge*_*man 5

Date班只有精确到毫秒.它无法存储更高的精度.

JavadocsDate:

Date类表示特定的时刻,精度为毫秒.


Vid*_*dya 5

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

因此,只要做些事就可以Timestamp抓住它的毫秒数,getTime但是要确保紧紧抓住它。