Elasticsearch中日期结束时的Z是什么

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

为什么在Elasticsearch中我们在日期字段的末尾有'Z'?

例如:

2016-05-16T00:00:00.000Z

这是什么意思?

这对某事有用吗?

有害吗?

我可以摆脱它吗?

怎么样的joda时间?

java elasticsearch timezone java-8 jodatime
2个回答
14
投票

这是什么意思?

'Z'表示UTC。 参考: https://www.w3.org/TR/NOTE-datetime

尽量不要存储当地日期。如果你想在日期找到一个好的线程,为什么你应该使用UTC检查this thread

这对某事有用吗?

它非常有用,以UTC格式存储所有日期可以轻松地将日期从语言环境转换为语言环境。它还允许日期比较和日期可视化保持一致。

有害吗?

没有。

我可以摆脱它吗?

如果你希望?我不建议这样做......这有点像从交易中删除货币字段。这笔交易没有任何意义。

日期的另一个例子:

我在2016年12月24日下午1点在X国(即提前6小时)打电话给我的朋友。对他来说是晚上7点。所以我们有两个本地日期时间。

一个对我来说:

1pm December 24th 2016 in London

一个给我的朋友:

7pm December 24th 2016 in Country X

如果我删除'in ...'部分这两个变成两个相隔5小时的时间实例。这意味着我们不可能通过电话发言?对?

不,因为它们在两个语言环境中的时间相同。

怎么样的joda时间?

怎么样?......

我希望这有帮助。


1
投票

来自RFC3339关于互联网上的日期和时间:

数值偏移计算为“本地时间减去UTC”。因此,UTC中的等效时间可以通过从本地时间减去偏移量来确定。例如,18:50:00-04:00与22:50:00Z同时发生。 (此示例显示通过添加偏移的绝对值处理的负偏移。)

因此,Z结尾的日期是UTC的日期和时间。它应该相当于2016-05-16T00:00:00.000Z-00:00

是否存在时区偏移只是date format being used in Elasticsearch's field definition的问题。

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