我编写了一个程序,它读取包含日期的文件(以 yyyy/MM/dd 格式)并使用 Datastax Java 驱动程序读取日期并将其添加到 cassandra 表中。因此,例如,如果我的记录包含日期值“2010/06/01”,则该日期值将转换为日期对象(使用 SimpleDateFormat 类)。
但是,当我查看数据库中的数据(包含日期)时,我看到日期(在 cassandra 表中是时间戳类型)显示如下:
2010-06-01 00:00:00+0100
这里的问题是我不希望时间戳具有“+0100”(表示这是英国夏令时),而是希望将日期存储为“2010-06-01 00:00: 00+0000”。
我已经对我的程序执行了以下操作,以尝试通过执行以下操作“忽略”时区:
SimpleTimeZone tz = new SimpleTimeZone(0, "Out Timezone");
TimeZone.setDefault(tz);
String dateStringFromFile = "2010/06/01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date theDate = sdf.parse(dateStringFromFile);
...现在,当我向程序添加调试语句时,我可以看到日期在我的日志文件中显示“2010-06-01 00:00:00+0000”(这对我来说是正确的)。但是,当我看到存储在 Cassandra 中的日期时,我仍然看到日期显示为“2010-06-01 00:00:00+0100”而不是“2010-06-01 00:00:00+0000”。
在 cassandra 方面是否有任何我必须更改或更新以忽略时区的内容(即不在日期上放置 +0100 并放置 +0000),以便时间戳显示为“2010-06-01 00:00 :00+0000”?
请注意,我在 Docker VM(Centos linux)Java 8 上运行 Cassandra 3.0.5。
任何建议表示赞赏。
谢谢。