0

Ich habe ein Programm geschrieben, das eine Datei mit dem Datum liest (im JJJJ/MM/TT Format) und den Datastax Java Driver verwendet, um das Datum zu lesen und in eine Cassandra Tabelle einzufügen. Wenn also beispielsweise mein Datensatz einen Datumswert von '2010/06/01' enthält, wird dieser Datumswert in ein Datumsobjekt konvertiert (mit der SimpleDateFormat-Klasse).Cassandra: Zeitzone für Zeitstempel ignorieren

Allerdings, wenn ich die Daten (mit dem Datum) in der Datenbank zu sehen, sehe ich, dass das Datum (die in der cassandra Tabelle ein Zeitstempel-Typ) zeigt folgendes:

2010-06-01 00:00:00+0100 

Das Problem hier ist, dass ich nicht möchte, dass der Zeitstempel "+0100" hat (um anzuzeigen, dass dies britische Sommerzeit ist), sondern dass ich das Datum nur als "2010-06-01 00: 00: 00 + 0000" speichern möchte ".

Ich habe folgend mein Programm durchgeführt, um zu versuchen und ‚ignore‘ die Zeitzone wie folgt an:

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); 

... Nun, wenn ich Debug-Anweisungen zu meinem Programm hinzufügen, kann ich sehen, dass Das Datum zeigt "2010-06-01 00: 00: 00 + 0000" in meiner Log-Datei (das ist richtig für mich). Wenn ich jedoch das in Cassandra gespeicherte Datum sehe, sehe ich immer noch, dass das Datum als "2010-06-01 00: 00: 00 + 0100" und nicht als "2010-06-01 00: 00: 00 + 0000" angezeigt wird.

Gibt es irgendetwas auf der Cassandra-Seite, das ich ändern oder aktualisieren müsste, um die Zeitzone zu ignorieren (dh nicht +0100 auf das Datum setzen und +0000 setzen), so dass der Zeitstempel als "2010-06- 01 00: 00: 00 + 0000 "?

Bitte beachten Sie, dass bei mir läuft Cassandra 3.0.5 auf einem Docker VM (Centos Linux), Java 8.

Jede Beratung sehr geschätzt wird.

Danke.

+0

Wie sehen Sie Ihre Daten? Wenn durch cqlsh dann ändern Sie den UI-Abschnitt der cqlshrc Datei –

+0

Hallo, ich benutze DBeaver (das ist ein UI-Programm). – rm12345

+0

Diese Fähigkeit könnte es tun. Überprüfen Sie durch Ihren Java-Code oder cqlsh –

Antwort

0

Diese Lösung wurde aussortiert. Nichts mit cqlshrc zu tun. Es ist damit zu tun, die Zeitzone als 0 zu erzwingen (wie der Code im ursprünglichen Beitrag) und die Zeit in Millisekunden zu erhalten und diese in die Datenbank zu schreiben (was eine Zeitstempel-Spalte ist)