System.currentTimeMillis() 存在的问题
时间: 2023-11-15 19:56:53 浏览: 163
System.currentTimeMillis() 存在的问题主要是精度问题和性能问题。在多线程并发调用时,由于该方法返回的是当前时间的毫秒数,因此可能会出现精度不够的情况。此外,在高并发场景下,频繁调用该方法也会对系统性能造成一定的影响。因此,一些开发者会采用自定义的缓存时钟来替代 System.currentTimeMillis(),以提高性能和精度。
相关问题:
1. System.currentTimeMillis() 和 System.
相关问题
System.currentTimeMillis()结果
System.currentTimeMillis()是Java中的一个方法,用于获取当前系统时间的毫秒数。它返回的是从1970年1月1日00:00:00 GMT开始到当前时间的毫秒数。这个方法通常用于计算程序的执行时间、生成唯一的时间戳等。
需要注意的是System.currentTimeMillis()返回的是一个长整型数值,表示的是相对于UTC时间的毫秒数。由于不同的操作系统和硬件平台可能存在时钟偏差,因此它并不是一个绝对准确的时间戳。
System.currentTimeMillis()不准确
System.currentTimeMillis()返回的是从UTC 1970年1月1日午夜开始的毫秒数。而,由于各种因素的影响,它并不总是精确的。引用中提到了一个可能的问题,当使用System.currentTimeMillis()给生成文件命名时,可能会出现同名情况。这是因为在同一毫秒内多次调用System.currentTimeMillis()可能会返回相同的值。这种情况下,可以考虑使用更精确的时间戳生成方式,比如使用UUID作为文件名的一部分,以确保文件名的唯一性。
另外,引用中提供的示例代码显示了如何使用System.currentTimeMillis()来显示当前时间。然而,该示例代码可能存在一些问题,导致返回的值不准确。比如在计算currentHour时,应该使用totalHour % 24而不是totalMinutes % 24。此外,在打印时间时,应该使用字符串连接符“+”而不是“,”。
总之,System.currentTimeMillis()在一些特定情况下可能不准确,因此在使用时需要注意可能出现的问题,并根据具体需求选择合适的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [高并发下,使用System.currentTimeMillis()计算时间差出现负数](https://blog.csdn.net/acwlb/article/details/103522314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [System.currentTimeMillis()返回一个错误的值](https://blog.csdn.net/smbluesky/article/details/88965867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文