为什么';T';在OffsetDateTime日期格式中使用-java 8

为什么';T';在OffsetDateTime日期格式中使用-java 8,datetime,java-8,Datetime,Java 8,我使用OffsetDateTime类解析数据库中的日期。 为什么日期包含'T' 示例:2018-01-01T12:00:00.000Z 我能理解格式是T。。但是,我仍然不明白为什么在两者之间使用't' 提前感谢ISO 8601 2018-01-23T12:00:00.000Z 这意味着UTC 2018年1月23日中午 这是由定义的标准格式之一。这些格式设计用于以文本形式交换日期时间值,便于机器解析,便于人类跨文化阅读。ISO 8601是一个现代标准,取代了各种早期互联网标准中的格式。ISO 86

我使用OffsetDateTime类解析数据库中的日期。 为什么日期包含'T'

示例:
2018-01-01T12:00:00.000Z

我能理解格式是T。。但是,我仍然不明白为什么在两者之间使用't'

提前感谢

ISO 8601 2018-01-23T12:00:00.000Z

这意味着UTC 2018年1月23日中午

这是由定义的标准格式之一。这些格式设计用于以文本形式交换日期时间值,便于机器解析,便于人类跨文化阅读。ISO 8601是一个现代标准,取代了各种早期互联网标准中的格式。ISO 8601还被信息技术以外的各个行业采用

  • 中间的<代码> t>代码>将日期部分与日期部分分开。<李>
  • 句点(句号)之后是小数秒的任意位数。该标准倾向于使用逗号,但美国人通常使用句号
  • 末尾的
    Z
    发音为“Zulu”,表示与UTC的偏移量为零小时分秒,或
    +00:00:00
为什么在两者之间使用“T”

为了避免使用空格字符,使识别和解析更容易,需要一个字母。至于为什么
T
,您必须询问标准的作者。我只能猜测字母“t”在英语中被选为time,在法语中被选为temps,等等

使用
Z
表示零偏移量是从航空和军事中的常用用法中提取出来的

我强烈建议您在以文本形式存储、写入、交换和记录日期时间值时使用这些ISO 8601格式。这些格式被明智地设计为简单实用。它们避免使用空格字符,并避免广泛使用英语和任何其他语言

java 8及更高版本中内置的java.time类在解析和生成字符串时默认使用这些格式

Instant.now().toString()
2019-08-27T20:15:21.005946Z

java.time.ZonedDateTime
类明智地扩展了标准,将时区名称附加在方括号中

Instant instant = Instant.parse( "2019-08-27T20:15:21.005946Z" ) ;
ZoneId z = ZoneId.of( "Pacific/Auckland" ) ; 
ZonedDateTime zdt = instant.atZone( z ) ;  // Same moment, same point on the timeline, different wall-clock time.
zdt.toString():2019-08-28T08:15:21.005946+12:00[太平洋/奥克兰]

周 你问:

在我给出的示例中,我是否能够使用“W”而不是“T”

不可以。表示时刻时,必须在日期和时间之间使用
T

在ISO 8601的另一种格式中,当表示

2019-W35-3

要使用标准周,请使用扩展java.time功能的项目中的类

LocalDate ld = zdt.toLocalDate() ;
YearWeek yw = YearWeek.from( ld ) ;
ld.toString():2019-08-28

yw.toSting():2019-W35


除了
YearWeek
之外,查看所有这些

谢谢你,琼尔夏普。这些字符只是为了表示吗??。在我的示例中,我能用“W”而不是“T”吗?如果你使用的字符不是T,那么它就不再符合ISO 8601标准了。@JonSharpe但在维基百科中,他们引用了“--”、“:”、“T”、“W”和“Z”作为交换字符,这些字符都有不同的用途<代码>-分隔日期部分,
分隔时间部分,
W
表示“周”,而
Z
表示祖鲁/零偏移(UTC)。非常感谢您的解释。这很有帮助
LocalDate ld = zdt.toLocalDate() ;
YearWeek yw = YearWeek.from( ld ) ;
LocalDate ld = zdt.toLocalDate() ;  // Extract just the date without the time-of-day and without time zone.