我有一个对象,我需要将它以格式java.util.Date
插入 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');
无论我指定的时区如何,返回的时间戳都是相同的时间戳。它忽略了我指定的带有时区的 Calendar 对象。发生了什么事,我做错了什么?