1
私は混乱する問題があります。 PostgreSQLデータベースには4つのテーブルがあります。 Javaを使用して、テーブルからタイムスタンプを取得し、これらのテーブルを使用します。今問題: それらを示すために、私は時間を2つのテーブルでタイムゾーンを使用して変更する必要がありますが、他の2つではありません。これは、データベース内のすべてのタイムスタンプは、タイムゾーンなしであり、他の2タイムゾーン混乱はデータベーステーブルに依存する
[1970-01-01 10:00:00.0, 1970-01-01 11:00:00.0, 1970-01-01 12:00:00.0]
1970-01-01 11:00:00.0
1970-01-01 12:00:00.0
のための2つのテーブル
[1970-01-01 00:00:00.0, 1970-01-01 01:00:00.0, 1970-01-01 02:00:00.0]
1970-01-01 00:00:00.0
1970-01-01 02:00:00.0
、間違ったため
Timestamp lowest = getLowestTimestampFromDB();
Timestamp highest= getHighestTimestampFromDB();
int diffHours = getDifference(lowest, highest);
Timestamp[] hours = new Timestamp[diffHours+2];
for (int i = 0; i < hours.length; i++) {
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
c.setTime(timestamp);
long gmtTime = c.getTime().getTime();
long timezoneAlteredTime = gmtTime + TimeZone.getTimeZone("GMT-1").getRawOffset();
c = Calendar.getInstance(TimeZone.getTimeZone("GMT-1"));
c.setTime(new Timestamp(timezoneAlteredTime));
c.add(Calendar.HOUR, 1*i);
hours[i] = new Timestamp(c.getTimeInMillis());
}
System.out.println(Arrays.toString(hours));
System.out.println(lowest);
System.out.println(highest);
プリントが正しいか、このコード例で行われます。 私はちょうど時々私は1時間を減算しなければならない理由が得られないことがあります。
EDIT:コード拡張。
表示されたコードは、データベースとやりとりすることはありません。 –
これは、タイムスタンプの変更方法を示しています。 – Daniel
*正確に*日時値を持つデータベース列のデータ型は何ですか? –