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

ISO 8601中的时间戳-最后6位数字yyy-MM-dd'T'HH: mm: ss.?

居和顺
2023-03-14

我有这样的时间戳:

    2015-03-21T11:08:14.859831
    2015-03-21T11:07:22.956087

我阅读了一篇关于ISO 8601的Wiki文章,但没有理解这里最后6位数字的含义。

我尝试使用“嗯 它只是比毫秒更精确 - 高达微秒吗?

共有1个答案

锺离边浩
2023-03-14

它只是比毫秒更精确吗?

是的,在这种情况下是微秒。

ISO-8601 实际上并没有指定最大精度。它指出:

如有特殊需要,可包括小时、分钟或秒的小数部分。如果包括小数部分,则应省略低阶时间元素(如果有),小数部分应与整数部分除以国际标准化组织31-0规定的小数符号,即逗号[,]或句号[。]。其中,逗号是首选符号。如果数字的大小小于单位,按照3.6的规定,小数符号前应加两个零。

根据申请,交换方应同意小数位数。[...]

(你很少真的把逗号视为小数分隔符——至少,这是我的经验。)

不幸的是,根据我的经验,在Java 7中解析这样的值是很棘手的——没有一个格式说明符来“只使用小数并做正确的事情”。您可能会发现,在解析为毫秒之前,需要手动删除尾随的3个数字。

由于Java8支持纳秒的精度,它相当简单——事实上,内置的国际标准化组织格式化程序可以很好地解析它:

import java.time.*;
import java.time.format.*;

public class Test {
    public static void main(String[] args) {
        DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
        System.out.println(LocalDateTime.parse("2015-03-21T11:07:22.956087", formatter));
        
    }
}
 类似资料:
  • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。

  • 我有这样一个时间戳:

  • 在我的数据集中,我有一个变量< code>duration,其中有200万行< code>ISO 8601格式的数据。示例格式:< code>PT21S或< code>PT5M29S,< code>PT1M16S 我在将此字符串变量转换为时间时遇到问题。目前我正在使用查询: 通过该查询,可以区分持续时间是小时、分钟还是秒。我想将字符串持续时间转换为时间。我用过Regex和cast,但没有成功。当我

  • 问题内容: 我想将时间戳2011-03-10T11:54:30.207Z转换为10/03/2011 11:54:30.207。我怎样才能做到这一点?我想将ISO8601格式转换为UTC,然后UTC应该可以识别位置。请帮忙 异常:java.text.ParseException:无法解析的日期:“ 2011-03-10T11:54:30.207Z” 问题答案: 首先,您需要意识到,UTC实际上不是时

  • 问题内容: 对于某些Hibernate实体,我们需要存储其创建时间和上次更新时间。你将如何设计? 你将在数据库中使用什么数据类型(假设使用MySQL,可能与JVM时区不同)?数据类型是否支持时区? 你会在Java中使用什么数据类型(Date,Calendar,long,…)? 你将由谁负责设置时间戳(数据库,ORM框架(hibernate)或应用程序程序员)? 你将使用哪些注释进行映射(例如@Te

  • 问题内容: 在python中,日期似乎是一件棘手的事情,而从pandas TimeStamp中剥离日期却给我带来了很多麻烦。我想简单地 我有一个带有Created_date列的数据框: 我已尝试在该系列上应用该方法,例如:,但出现错误 有人可以帮我吗? 问题答案: 在元素上: 您可以通过调用组成的元素的方法来获取原始对象: 然而, 另一种 方式,你可以做到这一点是通过调用未绑定方法: 此方法最快,