Java如何格式化日期不丢失微秒?数据库时间查询匹配问题
保留微秒的日期格式化解决方案
问题场景
从数据库表中提取的日期字符串格式示例为:"2022-09-23-11.25.52.660135",需要将该日期转为字符串用于二次查询,但格式化时总是丢失最后三位数字(135),导致查询无结果。
尝试过的无效方案
最初使用SimpleDateFormat进行格式化,代码如下:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SS");
后续尝试过yyyy-MM-dd-HH.mm.ss.SSS或yyyy-MM-dd-HH.mm.ss.SSSSSS格式,结果都是补零而非保留原始的最后三位微秒数字。
有效解决方案
修改实体类中对应字段的类型,将原本的Timestamp替换为LocalDateTime:
- 原字段定义:
@Column(name = "TIMESTAMP_B_B03") private Timestamp timestampB03; - 修改后:
@Column(name = "TIMESTAMP_B_B03") private LocalDateTime timestampB03;
注:数据库中该列实际类型为Timestamp,但Java中使用LocalDateTime才能正确获取到微秒级精度的时间。
内容的提问来源于stack exchange,提问作者TheCrow
相关产品推荐
相关产品推荐

