这个“YYYY-MM-DD 00:00:00+00:00”是哪种Java日期格式?

Sam*_*rvb 5 java date simpledateformat

我有一些数据提到的日期为“2013-06-30 00:00:00+00:00”。我检查了不同的日期格式,但是找不到这个。有人可以帮忙吗?

Bas*_*que 8

ISO 8601 的可选变体

\n\n

至于您关于“这是什么格式”的问题,从技术上讲,这种格式是ISO 8601 的可选变体。该标准允许T在通信双方达成一致的情况下用 SPACE 替换。

\n\n

在缺乏适当的数字字体的情况下,使用空格可以使字符串更容易被人类阅读。但严格来说,这个 SPACE 版本不是标准的,因此T在系统之间交换数据或将数据序列化为文本时应该包含 。

\n\n

使用java.time

\n\n

其他答案都是正确的。这是一个简单的解析替代方案。

\n\n

您的输入字符串几乎符合标准ISO 8601格式。将中间的 SPACE 替换为 aT以完全符合。

\n\n
String input = "2013-06-30 00:00:00+00:00".replace( " " , "T" );\n
Run Code Online (Sandbox Code Playgroud)\n\n

java.time类取代了麻烦的旧遗留日期时间类。这些较新的类在解析/生成字符串时默认支持 ISO 8601 格式。

\n\n
OffsetDateTime odt = OffsetDateTime.parse( input );\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

关于 java.time

\n\n

java.time框架内置于 Java 8 及更高版本中这些类取代了麻烦的旧遗留日期时间类,例如java.util.Date, Calendar, & SimpleDateFormat

\n\n

Joda -Time项目现在处于维护模式,建议迁移到java.time类。

\n\n

要了解更多信息,请参阅Oracle 教程。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310

\n\n

从哪里获取 java.time 类?

\n\n\n\n

ThreeTen -Extra项目通过附加类扩展了 java.time。该项目是 java.time 未来可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如Interval、、、等等。YearWeekYearQuarter

\n


Mar*_*oDS 3

这是ISO 8601格式的日期,T日期和时间之间省略(请参阅:在 ISO 8601 日期中,T 字符是强制性的吗?