java - Elasticsearch 中日期末尾的 Z 是什么

标签 java elasticsearch timezone java-8 jodatime

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

例如:

2016-05-16T00:00:00.000Z

这是什么意思?

这东西有用吗?

它有害吗?

我可以摆脱它吗?

joda时间呢?

最佳答案

What does it mean?

“Z”表示 UTC。
引用资料:
https://www.w3.org/TR/NOTE-datetime

尽量不要存储本地日期。如果你想找到关于日期的好帖子以及为什么你应该使用 UTC 检查 this thread .

Is this something useful for anything?

这非常有用,将所有日期存储在 UTC 中可以轻松地将日期从区域设置转换为区域设置。它还允许日期比较和日期可视化保持一致。

Is it harmful?

没有。

Can I get rid of it?

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

另一个带日期的例子:

我在 2016 年 12 月 24 日下午 1 点调用我在 X 国家的 friend (提前 6 小时)。 对他来说是晚上 7 点。 所以我们有两个本地日期时间。

给我一​​个:

1pm December 24th 2016 in London

一个给我的 friend :

7pm December 24th 2016 in Country X

如果我删除“在...”部分,这两个部分将成为两个时间实例,彼此相隔 5 小时。这意味着我们不可能通过电话交谈?对吧?

不,因为它们在时间上是相同的实例,跨越两个语言环境。

What about joda time?

那又怎样呢?...

希望对您有所帮助。

关于java - Elasticsearch 中日期末尾的 Z 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37148899/

相关文章:

java - JAVA中静态成员的内存范围

amazon-web-services - Amazon Elasticsearch Service Kibana的错误: “Tenant indices migration failed”

performance - Elasticsearch "block until refresh"/"wait for doc to be searchable"替代品

java - 在 Java 中确定美国 ZoneIds 的夏令时

java - 一些java泛型问题

Java JAXB 多线程解码

java - 有什么方法可以保证ElasticSearch索引已被删除

php - MYSQL 需要建议将存储在 EST 时区数据库中的日期迁移到 UTC 时区

java - 如何将时区字符串转换为 Java 中的 TimeZone 对象?

java - 填充实体后为空下拉列表