0

J'ai écrit un programme qui lit un fichier contenant la date (au format aaaa/MM/jj) et utilise le pilote Java Datastax pour lire la date et l'ajouter à une table cassandra. Par exemple, si mon enregistrement contient une valeur de date de '2010/06/01', alors cette valeur de date est convertie en objet de date (en utilisant la classe SimpleDateFormat).Cassandra: Ignorer le fuseau horaire pour la valeur d'horodatage

Cependant, quand je considère les données (contenant la date) dans la base de données, je vois que la date (qui dans le tableau cassandra est un type d'horodatage) affiche les informations suivantes:

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

La question ici est que je ne veux pas que l'horodatage ait "+0100" (pour indiquer que c'est l'heure d'été britannique), plutôt je voudrais stocker la date juste comme "2010-06-01 00: 00: 00 + 0000 ".

Je l'ai fait ce qui suit à mon programme pour essayer de « ignorer » le fuseau horaire en procédant comme suit:

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

... Maintenant, quand j'ajouter des instructions de débogage à mon programme, je peux voir que la date montre "2010-06-01 00: 00: 00 + 0000" sur mon fichier journal (ce qui est bon pour moi). Cependant quand je vois la date stockée dans Cassandra, je vois toujours que la date montre comme "2010-06-01 00: 00: 00 + 0100" et non "2010-06-01 00: 00: 00 + 0000".

Y at-il quelque chose sur le côté cassandra que je devrais changer ou mettre à jour pour ignorer le fuseau horaire (à savoir ne pas mettre +0100 sur la date et mettre +0000), de sorte que l'horodatage affiche "2010-06- 01 00: 00: 00 + 0000 "?

S'il vous plaît noter que je courais Cassandra 3.0.5 sur une machine virtuelle Docker (de Linux CentOS), Java 8.

Tout conseil est apprécié.

Merci.

+0

Comment voyez-vous vos données. Si par cqlsh puis modifier la section de l'interface utilisateur du fichier cqlshrc –

+0

Salut, j'utilise DBeaver (qui est un programme d'interface utilisateur). – rm12345

+0

Cette uitility pourrait le faire. Vérifiez votre code java ou cqlsh –

Répondre

0

Cette solution a été triée. Rien à voir avec cqlshrc. C'est à faire avec forçant le fuseau horaire comme 0 (comme le code dans le message original) et obtenir le temps en millisecondes et en écrivant cela à la base de données - (qui est une colonne de type timestamp)