为什么在Elasticsearch中我们在日期字段的末尾有'Z'?
例如:
2016-05-16T00:00:00.000Z
这是什么意思?
这对某事有用吗?
有害吗?
我可以摆脱它吗?
怎么样的joda时间?
这是什么意思?
'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时间?
怎么样?......
我希望这有帮助。
来自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的问题。