У меня есть объект java.util.Date
, и мне нужно вставить его в поле datetime в MySQL в формате UTC
java.util.Date date = myDateFromSomewhereElse;
PreparedStatement prep = con.prepareStatement(
"INSERT INTO table (t1, t2) VALUES (?,?)");
java.sql.Timestamp t = new Timestamp(date.getTime());
prep.setTimestamp(1, t, Calendar.getInstance(TimeZone.getTimeZone("PST"));
prep.setTimestamp(2, t, Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(prep.toString());
Что дает мне подготовленную строку оператора SQL:
INSERT INTO table (t1, t2) VALUES ('2012-05-09 11:37:08','2012-05-09 11:37:08');
Возвращаемая временная метка является одной и той же временной меткой независимо от указанного часового пояса. Он игнорирует объект календаря с указанным часовым поясом. Что происходит и что я делаю неправильно?