我刚刚在我的Windows (8)工作站和AIX上测试了这段代码:
    public static void main(String[] args) {
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS").format(new Date()));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS").format(new Date()));
    }结果得到了类似的结果:
2013-10-07 12:53:26.000905
2013-10-07 12:53:26.000906如果不是微秒的话,谁能给我解释一下最后的数字是什么?
注意:我与一个DB2数据库交互,其中按时间顺序排列的数据使用timed列作为时间戳,秒数后面有6位数字,即微秒(IMO)。但是所有这些“时间戳”都是通过请求以下查询来创建的:
SELECT current timestamp as currenttimestamp FROM Table ( values (1)) temp我想知道,考虑到上面的结果,我是否不能只在代码中使用new Date(),而不是从数据库中选择current timestamp。
谢谢。
PS:我搜索了一下,但没有找到相关的(回答的)问题,比如:Current time in microseconds in java或Get time with hour, minute, second, millisecond, microsecond
发布于 2014-06-27 21:47:04
我使用了另一个技巧,以6位精度(微秒)格式化日期:
System.out.println(
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.").format(microseconds/1000)
    +String.format("%06d", microseconds%1000000));这项技术可以进一步扩展到纳秒甚至更高。
发布于 2013-10-07 19:19:38
如果您想在文本表示中获得小数秒,请使用java.sql.Timestamp.toString。来自DB和Java Date的时间戳的不同之处在于,DB精度是纳秒,而Java日期精度是毫秒。
发布于 2018-02-02 01:26:43
SSSSSS是微秒级的。假设时间是10:30:22 ( 22秒),10:30:22.1将是22秒1/10秒。扩展相同的逻辑,10:32.22.000132将是22秒和132/1,000,000秒,这只是微秒。
https://stackoverflow.com/questions/19223171
复制相似问题