【发布时间】:2018-08-26 06:30:06
【问题描述】:
基本上,我正在尝试使用以下方法获取系统当前时间戳,包括毫秒数
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
System.out.println(timestamp);
问题是有时会显示
2018-08-26 14:17:16.94
我希望它改为显示 2018-08-26 14:17:16.940,因此毫秒内总是有 3 位数字。
我该怎么做?
非常感谢。
【问题讨论】:
-
使用日期/时间格式化程序 - 但真正的问题是,您为什么使用
Timestamp?您需要了解Timestamp#toString只是将它所代表的值生成一个“人类可读”的结果,通常基于当前 JVM 的配置,它并不意味着“显示”,这就是格式化程序的用途 -
java.sql.Timestamp类在这里不合适。仅用于与数据库交换数据。从 JDBC 4.2 开始,现在被java.time.Instant取代。对于您所在时区的当前时刻,请使用ZonedDateTime。使用DateTimeFormatter生成具有表示日期时间值的文本的String。这已经在 Stack Overflow 上讨论过很多很多次了。发帖前先搜索。
标签: java