gpt4 book ai didi

cassandra - Cassandra DB 中的时区

转载 作者:行者123 更新时间:2023-12-05 04:00:34 28 4
gpt4 key购买 nike

我无法在本地时区的 cassandra 中存储时间戳。我的 springdata API 从平面文件(从 UNIX 服务器填充)接收数据。数据被转换为 java.util.Date 并保存到时间戳数据类型的 cassandra 表中。

但它总是会转换为 GMT

String str_data = "13/05/2019 15:38:08";
DateFormat format = new SimpleDateFormat("d/M/yyyy H:m:s", Locale.ENGLISH);
Date timestamp = format.parse(str_data);
format.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println("Time: "+timestamp);

我的 java 控制台上的输出是正确的,如下所示:

Time: Mon May 13 15:38:08 BST 2019

但是 Cassandra DB 是这样的:

ts
--------------------------------
2019-05-13 14:38:08.000000+0000

请问我做错了什么?

版本信息:[cqlsh 5.0.1 | Cassandra 3.11.2 | CQL 规范 3.4.4 | native 协议(protocol) v4]

最佳答案

时间戳始终转换为 GMT 存储,然后您的应用程序有责任将其转换为正确的表示形式。时间戳在内部存储为长整数,并在显示时进行转换。

如果你想在 cqlsh 中正确格式化这些数据,你需要使用时区信息设置你的 ~/.cassandra/cqlshrc 文件 - 这是通过 timezone 配置参数,像这样:

[ui]
TZ = Europe/London

或在启动cqlsh时设置TZ环境变量。

关于cassandra - Cassandra DB 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56114783/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com