为了账号安全,请及时绑定邮箱和手机立即绑定

java用皮秒解析日期

java用皮秒解析日期

肥皂起泡泡 2021-08-19 19:10:17
我有一个带皮秒的字符串日期(句点后的 9 到 12 位数字),当我尝试使用以下内容解析日期时DateTimeFormatter:DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSSSSSSS");它抛出一个异常,表示我不能在句点后创建超过 9 位数字的格式。是否有另一个类可以解析日期,或者不同的解析方式。任何解决方案都会帮助我,但更喜欢使用的类/方式 LocalDateTime
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

没有解决方案

我听说没有任何类、库或数据库可以表示时间的皮秒分辨率。

正如对问题的评论以及Grace Hopper 博士的著名教导,光在一纳秒内仅传播约 1 英尺。光在皮秒内只传播了几分之一毫米。这比计算机技术移动电信号所需的距离要小。因此,如此精细的时间测量在我们的一生中不太可能实用或相关。

截短

如果您的应用程序并不是真正需要picos,我建议截断您的字符串,在小数秒的前九个之后去掉任何数字。然后解析为 aInstantLocalDateTimeetc。

滚动你自己的类

如果您必须表示皮秒,我建议根据十进制小数分隔符(在 ISO 8601 标准下可以是逗号或句点 FULL STOP,首选逗号)将输入字符串分成两部分。

  • 将第一部分解析为自纪元(例如 1970-01-01T00:00:00Z)以来的LocalDateTimeInstant或整秒计数。

  • 然后将第二部分解析为 64 位长整数。

您可以编写一个名为 的小类PicoMoment,使用parse方法在内部表示这两个部分。查看 OpenJDK 源代码以查看在java.time类中内部进行的类似表示。

如果你走这条路,我建议你遵循java.time API 作为模型。


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 285 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信