java - 从微秒以微秒的精度创建字符串格式的实际日期
问题描述
我想从微秒创建一个 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
转换为微秒。这样我就失去了一个实际的微发送。
解决方案
您将无法使用java.util.Date
. 从 API:
Date 类表示特定的时间瞬间,精度为毫秒。
推荐阅读
- mysql - 在 MySQL 中使用用户定义的变量从前一行获取值
- javascript - 如何登录异步/等待上下文
- tomcat - 如何让tomcat从webpack开发服务器提供静态文件?
- java - 如果员工任期超过三年,则包含员工数据的程序调用 main 中的所有函数(在 java 中)
- scala - 如何通过参数Class生成Function1并返回Class
- ruby-on-rails - Doorkeeper Rake 任务中未初始化的常量 Doorkeeper::AccessToken
- javascript - 循环生成的多个表单一键提交
- c# - Appium:通过 Auth0 登录,找不到正确的 PageSource/元素
- angular - 我想过滤还包含一个数组的嵌套 JSON
- java - 在Java中打印*的金字塔