当前位置: 首页 > 知识库问答 >
问题:

java用皮秒解析日期

朱兴运
2023-03-14

我有一个带皮秒的字符串日期(在句点后的9到12位数之间),当我试图用DateTimeFormaster解析日期时:

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

它抛出一个异常,说我不能创建一个超过9位数的格式。

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

任何解决方案都会对我有所帮助,但我更喜欢使用LocalDateTime

共有1个答案

施知
2023-03-14

我听说没有任何类、库或html" target="_blank">数据库能代表皮秒的时间分辨率。

正如格雷斯·霍珀博士对这个问题的评论和著名的教导,光的传播速度只有一纳秒一英尺。

光在皮秒内的传播速度仅为一毫米的几分之一。想象一下霍珀在讲座中展示的一粒胡椒粉的宽度。这比计算机技术传输电信号所需的距离要小。因此,如此精确的时间测量不太可能在我们的一生中实用或相关。

如果这些picos对你的应用程序来说并不是必需的,我建议截断你的字符串,在小数秒的前九个数字之后删除任何数字。然后解析为InstantLocalDateTime等。

如果您必须表示皮秒,我建议根据十进制分数分隔符(根据国际标准化组织8601标准,可以是逗号或句号FULL STOP,首选逗号)将您的输入字符串一分为二。

  • 将第一部分解析为LocalDateTime或Instant或自一个纪元(如1970-01-01T00:00:00Z)以来的整秒计数。
  • 然后将第二部分解析为64位长整数。

您可以编写一个名为picomment的小类,使用parse方法在内部表示这两个部分。查看OpenJDK源代码,查看java内部的类似表示。时间课。

如果你走这条路,我建议你遵循java。时间API作为一个模型。

 类似资料:
  • 问题内容: 我的日期格式为dd-mmm-yy或d- mmm-y,其中月份是字母的缩写(例如,09年11月4日或05年12月12日等)。喜欢解析它以产生一个java.util.Date对象。 可以通过利用java.text.DateFormat类来实现吗?还是有另一种简单的方法? 问题答案: 您可能需要使用SimpleDateFormat来解析自定义格式。此文章解释格式的细节。

  • 问题内容: 我的日期格式为“ yyyy-MM-dd’T’HH:mm:ss.sssZ”。例如,日期为“ 2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析Java中的String。 这给了我“无法解析的日期:”例外。谁能告诉我该怎么做? 问题答案: 您忘了在 那会做的工作

  • 2015-05-09 00:10:23.999750900//后9位表示纳秒 当通过模式解析时 YYYY-MM-DD HH:MM:SS.SSSSSSS//9“s”符号 null null 有没有其他方法可以通过只向标准实现提供一个模式来获得正确的解决方案,而不需要任何其他代码修改或字符串操作?

  • 问题内容: 我正在尝试解析此日期,但无法正常工作: 如果我使用strDate =尝试此代码,我将获得肯定的答案。有什么问题?如何解析这种格式? PS。我从那里得到了这个日期,并且没有关于用户选择日期时如何修改日期格式的说明。 问题答案: 你不能期望使用设置为其他格式的SimpleDateFormat解析日期。 要解析“ 2009年Thu Jun 18 20:56:02 EDT 2019”日期字符串

  • 我想以yyyy-mm-dd格式存储今天的日期。在存储之前,我将今天的日期格式化,并再次解析格式化后的字符串。它以不同于我想要的格式给出了输出日期。我如何获得日期,将其格式化为' yyyy-mm-dd '并再次将其转换为日期,并希望输出格式为' yyyy-mm-dd '。请找到下面的代码,告诉我哪里错了 我得到的上述代码的输出是星期四 Mar 07 00:00:00 GMT 2013.但我希望输出为

  • 问题内容: 我正在尝试解析一个日期,但是奇怪的是我遇到了一个例外。 这是代码: 例外是: 我已经阅读了文档,我认为我的模式是正确的。所以我不明白… 问题答案: 这可能是因为你计算机上的默认语言环境不是英语。 你应该使用: 代替。