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

ISO 8601 DateTimeFormatter截断以下格式的ms:“yyyy-mm-ddthh:mm:ss.sssz”

曹季同
2023-03-14

一个在线API需要这种格式

string

completion formatted as ISO 8601 timestamp - 'YYYY-MM-DDTHH:mm:ss.sssZ'
2018-11-21T22:38:15.000Z
DateTimeFormatter.ISO_DATE_TIME
                    .withZone(ZoneOffset.UTC)
                    .format(LocalDate.now().atTime(LocalTime.NOON).atZone(ZoneOffset.UTC))

datetimeformatter.ofpattern(“yyyy-mm-dd't'hh:mm:ss.sssz”),但是输出中缺少Z。

共有1个答案

魏宏邈
2023-03-14

您可以使用自己的DateTimeFormatter:

private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");

然后用它来格式化日期:

ZonedDateTime zdt = LocalDate.now().atTime(LocalTime.NOON).atZone(ZoneOffset.UTC);
String formatted = DTF.format(zdt);
System.out.println(formatted); // 2021-03-08T12:00:00.000Z
 类似资料:
  • 问题内容: 我想在Java中解析这种格式为dd / MM / yyyy [至dd / MM / yyyy]的String的最佳方法是什么。带[]的字符串是可选的,dd代表日期的2位数字表示,MM是月份的2位数字表示,yyyy是年份的4位数字表示。 更新资料 谢谢大家的快速响应,但是我忘了告诉您[]是象征可选的,字符串中没有[]示例字符串可能是 22/01/2010 从22/01/2010至23/0

  • 问题内容: 我正在尝试将yyyy-MM-dd’T’HH:mm:ss.SSSz格式的日期格式化为yyyy-mm-dd HH:mm:ss,这应该很简单,但我无法正常工作。 必须解析的日期的格式为:2012-10-01T09:45:00.000 + 02:00 现在,我使用此简单的日期格式化程序对其进行格式化: 但这给出的输出类似于2012-10-01T09:45:00.000UTC + 00:00。

  • 问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的

  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 我正在尝试将yyyy-mm-dd't'hh:mm:ss.sssz格式的日期格式化为yyyy-mm-ddhh:mm:ss,这应该很容易,但我无法使其工作。 必须解析的日期形式为:2012-10-01T09:45:00.000+02:00 现在我使用这个简单的日期格式化程序来格式化它: 然而,这给出的输出类似于2012-10-01T09:45:00.000 UTC+00:00。 我还尝试使用“yyyy