首页 > 解决方案 > 从微秒以微秒的精度创建字符串格式的实际日期

问题描述

我想从微秒创建一个 java.util.Date 对象。但我不想失去它的精确微秒到毫秒。目前我正在通过以下方式将微秒转换为 Date 对象。如果我将微秒传递给 Date 构造函数,那么它会给出一个错误的日期,例如56521-12-01.

long microSeconds = value.getTimestampValue();// This function returns a microseconds.
DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS);
long millis = TimeUnit.MILLISECONDS.convert(microSeconds, TimeUnit.MICROSECONDS);
String startDate = FORMAT.format(new Date(millis));

我不想将微秒转换为毫秒。是否有 API 或 java-8 实用程序的方法,我可以直接将微秒转换为 Date 对象?

这种方法的问题是它删除最后三位微秒使其变为毫秒,然后从毫秒创建一个日期对象,解析器只需将其毫秒部分乘以将其1000转换为微秒。这样我就失去了一个实际的微发送。

标签: javajava-8java.util.date

解决方案


您将无法使用java.util.Date. 从 API

Date 类表示特定的时间瞬间,精度为毫秒。


推荐阅读