Этот проект, который у меня есть, использует базу данных MySQL. Но сейчас я хочу перейти на PostgreSQL. Все работает отлично, за исключением одной таблицы, в которой есть столбец типа timestamp.
//MedName is varchar, and DateTime is timestamp
String INSERT_REFILL = "INSERT INTO refill (MedName, DateTime) VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(INSERT_REFILL);
ps.setString(1, "Tylenol");
java.sql.Timestamp sqlDate = new java.sql.Timestamp(new java.util.Date().getTime());
TimeZone tz = TimeZone.getTimeZone("GMT");
GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance(tz);
ps.setTimestamp(2, sqlDate, cal);
Мой вопрос: по какой-то причине setTimestamp всегда добавляет 5 часов к значениям PreparedStatement. Я нахожусь в центре, поэтому мое время будет хх: хх: хх-0500 (центральное) из-за перехода на летнее время. Но я действительно сомневаюсь, что +5 часов приходит от этого. Есть идеи?
Примечание: я не тот, кто настраивал базу данных PostgreSQL, но я создал таблицу.