为什么在Elasticsearch中我们有' Z' 在日期字段的末尾?
例如:
2016-05-16T00:00:00.000Z
这是什么意思?
这对任何事都有用吗?
有害吗?
我可以摆脱它吗?
joda时间怎么样?
答案 0 :(得分:14)
这是什么意思?
'Z'表示UTC
参考:
https://github.com/mbostock/d3/wiki/Arrays#d3_zip
尽量不要存储本地日期。如果您想在日期找到一个好的主题,为什么要使用UTC检查https://www.w3.org/TR/NOTE-datetime。
这对任何事都有用吗?
非常有用,以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 :(得分: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的问题。