在Java中使用now()向数据库中插入当前时间,但是数据库查询出来的时间并不是当前时间
时间: 2024-03-08 12:46:11 浏览: 19
在 Java 中使用 `now()` 向数据库中插入当前时间,可以使用以下 SQL 语句:
```
INSERT INTO my_table(created_at) VALUES(NOW());
```
其中,`NOW()` 表示当前时间,这样就可以将当前时间插入到 `my_table` 表中的 `created_at` 字段中了。
如果在查询时,数据库返回的时间并不是当前时间,可能是因为数据库使用的时区与 Java 不同,需要在查询时将时间转换成 Java 使用的时区。可以使用以下代码:
```java
PreparedStatement statement = connection.prepareStatement(
"SELECT created_at FROM my_table WHERE id = ?");
statement.setInt(1, 1);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
Timestamp timestamp = resultSet.getTimestamp("created_at");
Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
calendar.setTimeInMillis(timestamp.getTime());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(calendar.getTime()));
}
```
其中,使用 `ResultSet` 获取到 `java.sql.Timestamp` 类型的时间后,将其转换成 `java.util.Calendar` 类型,并设置时区为 UTC,再将其转换成 Java 使用的时区,最后使用 `SimpleDateFormat` 格式化成字符串即可。