Java时间:如何解释ISO_DATE_TIME格式的时间

问题描述 投票:0回答:2

我不太清楚这个日期格式是什么意思:

2019-05-01T02:00:00 + 02:00 [欧洲/马德里]

它使用ISO_DATE_TIME DateTimeFormatter格式化。

它背后的代码是:

public void meth(Date d) {
    LOG.info(date.toInstant()
        .atZone(ZoneId.systemDefault())
        .format(DateTimeFormatter.ISO_DATE_TIME)
    );
}

这意味着马德里时间是00:00:00,还是02:00:00?

我的意思是,哪个时候马德里市民正在看他们的钟表?

java java-time
2个回答
3
投票

马德里的时间是02:00:00。 +02:00UTC的偏移量,因此UTC时间是00:00:00。


1
投票

此常量引用的ISO标准是ISO 8601,它也用作XML文档中的格式,称为W3CDTF。后者在W3C描述,比ISO的原始相关标准更容易理解,而且是免费的,而不是159 CHF ISO要求......

关于您关于实际时间的问题:马德里的时间是02:00:00,时区信息允许您对其他时区进行计算。这在电子邮件中也很常见,其中邮件的Date-header包含带有TZ-info的日期:

上架日期:星期一,2019年4月1日12:30:36 +0100

允许您的邮件客户端向您显示邮件的日期为13:30:36在德国,您可以正确地按日期对邮件进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.