文字列からのUTCオフセットを使用してタイムスタンプデータをカサンドラタイムスタンプ列に格納します。私の文字列はyyyy-MM-dd HH:mm:ssZ
のようなものです。ここで、Zは+0100
のような文字列です。私が望むのは、私のUTCオフセットを含むevent_time
の列にタイムスタンプとして保存するだけです。 DataStax Javaのドライバを使用する:文字列からカサンドラへのUTCオフセットを含むタイムスタンプを格納します
date
がこのように計算され
PreparedStatement statement = session.prepare(
"INSERT INTO " + table + "(" + frame + ", device_uuid, event_time, value)"
+ "VALUES (?,?,?,?);");
BoundStatement boundStatement = new BoundStatement(statement);
session.execute(boundStatement.bind(frame_val, uuid, date, value));
:
String str = "2016-11-22 02:33:25+0100";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
Date date = null;
try {
date = formatter.parse(str);
} catch (ParseException e) {
System.out.println("Error in parsing date");
e.printStackTrace();
}
return date;
常にゼロに設定されたオフセットを持つので、問題は、私はいつも2016-11-25 13:24:07+0000
のような値を持って、です。ここでデータフォーマットhttps://docs.datastax.com/en/cql/3.1/cql/cql_reference/timestamp_type_r.htmlをチェックして、どこが間違っているのか理解できません。カサンドラにタイムゾーンを使用させたくないのですが、UTCオフセットをタイムスタンプ値に「注入」したいと思っています。誰も私にこれをする方法を教えてもらえますか?
あなたのevent_timeはCassandraに正しく保存されています。 GMTでの時間が表示されています。 –
http://stackoverflow.com/questions/32778433/cassandra-cqlsh-not-displaying-correct-timezone –