我有一个picoseconds的字符串日期(句点后9到12位数字),当我尝试用DateTimeFormatter
解析日期时:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSSSSSSS");
它会抛出一个异常,表示我不能创建一个超过9位数的格式。
是否有另一个类可以解析日期,或者以不同的方式解析。
任何解决方案都会对我有所帮助,但更喜欢使用LocalDateTime
的类/方式
我听说没有代表皮秒时间分辨率的类,库或数据库。
正如对问题的评论,以及Dr. Grace Hopper所着名的,light travels只有一英尺一英尺左右。光线传播的速度仅为皮秒的一小部分。这小于计算机技术移动电信号所用的距离。因此,如此精细的时间测量在我们的生命中不太可能是实际的或相关的。
如果您的应用程序不需要picos,我建议截断您的字符串,在小数秒的前九个之后删除任何数字。然后解析为Instant
或LocalDateTime
等。
如果你必须代表皮秒,我建议根据小数分数分隔符将你的输入字符串分成两部分(根据ISO 8601标准,可以是逗号或句点全部停止,首选逗号)。
LocalDateTime
或Instant
或自1970-01-01T00:00:00Z等时代以来的整秒计数。您可以编写一个名为PicoMoment
的小类,使用parse
方法在内部表示这两个部分。查看OpenJDK源代码以查看java.time类内部进行的类似表示。
如果你走这条路,我建议你按照java.time API作为模型。