0

我编写了一个程序,它读取包含日期的文件(以 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。

任何建议表示赞赏。

谢谢。

4

1 回答 1

0

这个解决方案已经整理好了。与 cqlshrc 无关。它与强制时区为 0(如原始帖子中的代码)并以毫秒为单位获取时间并将其写入数据库有关 - (这是一个时间戳类型列)

于 2016-06-15T16:39:35.093 回答