Java-Java:毫秒在Windows平台是支持的不够好吗?

发布于 2017-02-24 09:55:25 字数 134 浏览 1262 评论 2

现在的功能是开启一个线程写文件,文件名为当前时间戳精确到毫秒
生成方法名:

filename=DateUtil.getNowTime();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-08-25 09:16:50

最后还真是Windows上只能精确到15ms,最后只能时间戳+随机数了=。=

清晨说ぺ晚安 2017-03-30 14:06:55

我觉得...

一个毫秒内写 几个文件, 计算机搞得定吧? 所以你的文件的时间戳是一样的...

Java现在支持NanoTime, 十亿分之一秒. 毫秒级还是太弱了. 你试试这个:

 @Test
public void timeTest(){
StringBuffer sbMillis = new StringBuffer("MILLIES:n");
for(int i=0; i < 10; i++)
sbMillis.append(System.currentTimeMillis()+"n");
System.out.println(sbMillis);

StringBuffer sbNano = new StringBuffer("NANOS:n");
for(int i=0; i < 10; i++)
sbNano.append(System.nanoTime()+"n");
System.out.println(sbNano);
}

在我的Win7下, nano time是不会重复的. millis就是一样的了.

不过Java doc里:
"This method provides nanosecond precision, but not necessarily nanosecond resolution (that is, how frequently the value changes) - no guarantees are made except that the resolution is at least as good as that of currentTimeMillis()."

精度是不保证的, 但肯定比currentTimeMillis 要精确.

最后如果你还想用现在的解决方案, 两次写文件中间 Thread.sleep 一毫秒, 如果可以接收的话.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文