我不知道为什么,但每次我都想救一个孩子 LocalDateTime
到mysql,然后再尝试查看它,7小时已经从中减去。例如,当我把 LocalDateTime.of(2018, 6, 28, 18, 30)
然后当我把它从数据库里拿出来的时候保存它,它说 2018-06-28 11:30
. 现在,我知道它这么做的原因是因为我住在西雅图,也就是gmt-7。我不知道的是如何让它停止那样做。我猜这有一个非常简单的解决方案,但我似乎不明白。
--编辑--
这是我用来保存到数据库的代码。
public static int update(String tableName, String idColumnName, int id, Map<String, Object> newValues) {
String sql = "UPDATE " + tableName + "\n"
+ "SET lastUpdate = " + convertDateToDBString(LocalDateTime.now()) + ",\n"
+ "lastUpdateBy = '" + activeUser.getUsername() + "'";
for (Map.Entry<String, Object> newValue : newValues.entrySet()) {
sql += ", \n" + newValue.getKey() + " = " + convertObjectToDBString(newValue.getValue());
}
sql += "\nWHERE " + idColumnName + " = " + id + ";";
if (connected) {
try {
printSQL(sql);
return statement.executeUpdate(sql);
} catch (SQLException e) {
printError(1111, "Could not run UPDATE query", e);
}
}
return -1;
}
下面是我用来从数据库中提取的代码。
public static ResultSet query(String sql) {
if (connected) {
try {
printSQL(sql);
if (statement.execute(sql)) return statement.getResultSet();
} catch (SQLException e) {
printError(1110, "Could not run SELECT query", e);
}
}
return null;
}
我不认为这真的有助于解决问题,这就是为什么我不费心添加它在第一位,但你们要求它。
--编辑--
这是你的密码 convertDateToDBString
.
public static String convertDateToDBString(LocalDateTime datetime) {
String dateString = "'" + Timestamp.valueOf(datetime) + "'";
return dateString;
}
暂无答案!
目前还没有任何答案,快来回答吧!