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

DateTimeFormatter中的格式化程序,用于ISO 8601时间的日期格式

林炫明
2023-03-14

我有一个关于DateTimeFormatter格式化程序的问题。

在SWAPI(https://SWAPI.co/documentation#people)中,您可以读取创建的编辑的日期,其格式如下:

2014-12-09T13:50:51.644000Z

但是在预定义格式化程序中的类DateTimeFormatter的文档一节中,我看不到任何与SWAPI日期示例匹配的格式化程序。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'")
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnn'Z'")

共有1个答案

谢英耀
2023-03-14

根据您的情况,您可能根本不需要指定格式化程序。time类解析(并打印)ISO8601格式作为它们的默认格式,也就是说,没有任何显式格式化程序。正如您图像中的描述所说,这是您所拥有的格式。

但是,要链接的两个预定义格式化程序与示例匹配:

  1. iso_instant
  2. ISO_OFFSET_DATE_TIME
    String swapiCreatedString = "2014-12-09T13:50:51.644000Z";
    Instant created = Instant.parse(swapiCreatedString);
    System.out.println("Created " + created);
    OffsetDateTime created = OffsetDateTime.parse(swapiCreatedString);

同样,解析不需要格式化程序。输出与上面相同。

我想您没有看到提到的两个格式化程序匹配的原因包括:

  • 没有一个示例包括秒的分数,但是格式化程序接受0到9个小数(包括)的秒的分数。
  • 偏移日期-时间示例具有偏移+01:00。您不可能知道z也用作偏移量。发音为“Zulu”,表示UTC。
    // nnnnnn is incorrect
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnn'Z'");
    String swapiCreatedString = "2014-12-09T13:50:51.644000Z";
    LocalDateTime created = LocalDateTime.parse(swapiCreatedString, formatter);
    System.out.println("Created " + created);
 类似资料:
  • 问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为

  • 我正在尝试使用Jackson将ISO8601格式的日期反序列化为Java8。我向ObjectMapper注册了JavaTimeModule,并关闭了设置。 但是,如果试图反序列化将不起作用,因为JavaTimeModule似乎只会反序列化使用UTC时区偏移量格式化的日期时间(例如)。然后我尝试使用注释,如下所示: 就像这样: 然而,这两种方法都不起作用,我得到了一个例外: 这意味着timezone

  • 问题内容: 我正在尝试使用Jackson 将ISO8601格式的日期反序列化为Java8 。我向ObjectMapper注册了JavaTimeModule,并关闭了该设置。 但是,如果尝试反序列化,它将无法正常工作,因为JavaTimeModule似乎只会反序列化具有UTC时区偏移量的日期时间(例如)。然后,我尝试使用如下注释: 像这样: 但是,这些都不起作用,我得到一个例外: 这意味着将忽略ti

  • 问题内容: 我有一个类似的日期/时间字符串,但我想将其转换为,我该怎么做? 我正在使用以下代码,但会引发异常。 问题答案: 您可以执行简单的字符串操作并创建js日期对象。请参见下面的函数,该函数接受// yyyy-mm-dd hh:mm:ss格式的日期

  • 我有一个以下格式的字符串: 我想利用这个时刻。js以这种格式获取它,用于显示。 我试着用这个方法, 哪些错误并表示没有称为“替换”的方法?我是不是走错了路? 我还应该提到,我正在使用一个预打包版本的矩。js,为Meteor打包。js 堆栈跟踪:

  • 主要内容:日期格式化符号,Python处理,Pandas处理当进行数据分析时,我们会遇到很多带有日期、时间格式的数据集,在处理这些数据集时,可能会遇到日期格式不统一的问题,此时就需要对日期时间做统一的格式化处理。比如“Wednesday, June 6, 2020”可以写成“6/6/20”,或者写成“06-06-2020。 日期格式化符号 在对时间进行格式化处理时,它们都有固定的表示格式,比如小时的格式化符号为 ,分钟简写为 ,秒简写为 。下表对常用的日期