java用皮秒解析日期

我有一个带皮秒的字符串日期(句点后的 9 到 12 位数字),当我尝试使用以下内容解析日期时DateTimeFormatter

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSSSSSSS");

它抛出一个异常,表示我不能在句点后创建超过 9 位数字的格式。

是否有另一个类可以解析日期,或者不同的解析方式。

任何解决方案都会帮助我,但更喜欢使用的类/方式 LocalDateTime



肥皂起泡泡
浏览 354回答 1
1回答

慕慕森

没有解决方案我听说没有任何类、库或数据库可以表示时间的皮秒分辨率。正如对问题的评论以及Grace Hopper 博士的著名教导,光在一纳秒内仅传播约 1 英尺。光在皮秒内只传播了几分之一毫米。这比计算机技术移动电信号所需的距离要小。因此,如此精细的时间测量在我们的一生中不太可能实用或相关。截短如果您的应用程序并不是真正需要picos,我建议截断您的字符串,在小数秒的前九个之后去掉任何数字。然后解析为 aInstant或LocalDateTimeetc。滚动你自己的类如果您必须表示皮秒,我建议根据十进制小数分隔符(在 ISO 8601 标准下可以是逗号或句点 FULL STOP,首选逗号)将输入字符串分成两部分。将第一部分解析为自纪元(例如 1970-01-01T00:00:00Z)以来的LocalDateTime或Instant或整秒计数。然后将第二部分解析为 64 位长整数。您可以编写一个名为 的小类PicoMoment,使用parse方法在内部表示这两个部分。查看 OpenJDK 源代码以查看在java.time类中内部进行的类似表示。如果你走这条路,我建议你遵循java.time API 作为模型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java