首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.util.Date格式SSSSSS:如果不是微秒,最后3位是什么?

java.util.Date格式SSSSSS:如果不是微秒,最后3位是什么?
EN

Stack Overflow用户
提问于 2013-10-07 19:04:45
回答 3查看 145.9K关注 0票数 51

我刚刚在我的Windows (8)工作站和AIX上测试了这段代码:

代码语言:javascript
运行
复制
    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()));
    }

结果得到了类似的结果:

代码语言:javascript
运行
复制
2013-10-07 12:53:26.000905
2013-10-07 12:53:26.000906

如果不是微秒的话,谁能给我解释一下最后的数字是什么?

注意:我与一个DB2数据库交互,其中按时间顺序排列的数据使用timed列作为时间戳,秒数后面有6位数字,即微秒(IMO)。但是所有这些“时间戳”都是通过请求以下查询来创建的:

代码语言:javascript
运行
复制
SELECT current timestamp as currenttimestamp FROM Table ( values (1)) temp

我想知道,考虑到上面的结果,我是否不能只在代码中使用new Date(),而不是从数据库中选择current timestamp

谢谢。

PS:我搜索了一下,但没有找到相关的(回答的)问题,比如:Current time in microseconds in javaGet time with hour, minute, second, millisecond, microsecond

EN

回答 3

Stack Overflow用户

发布于 2014-06-27 21:47:04

我使用了另一个技巧,以6位精度(微秒)格式化日期:

代码语言:javascript
运行
复制
System.out.println(
    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.").format(microseconds/1000)
    +String.format("%06d", microseconds%1000000));

这项技术可以进一步扩展到纳秒甚至更高。

票数 3
EN

Stack Overflow用户

发布于 2013-10-07 19:19:38

如果您想在文本表示中获得小数秒,请使用java.sql.Timestamp.toString。来自DB和Java Date的时间戳的不同之处在于,DB精度是纳秒,而Java日期精度是毫秒。

票数 0
EN

Stack Overflow用户

发布于 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秒,这只是微秒。

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19223171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档