jsp怎么把时间存进数据库
- 数据库
- 2025-07-14
- 3426
SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()),再通过JDBC将格式化后的时间字符串插入数据库对应字段
JSP中将时间存进数据库是一个常见的操作,通常涉及到获取当前系统时间、格式化时间以及将时间插入到数据库中,以下是详细的步骤和示例代码,帮助你实现这一功能。
获取当前系统时间
在JSP中,你可以使用java.util.Date或java.util.Calendar类来获取当前系统时间,以下是两种常用的方法:
-
使用
java.util.Date类:<% java.util.Date date = new java.util.Date(); // 获取毫秒数 long millis = date.getTime(); // 转换为sql.Date类型 java.sql.Date sqlDate = new java.sql.Date(millis); // 转换为字符串格式 String nowtime = sqlDate.toString(); // 返回yyyy-MM-dd格式 %> -
使用
java.util.Calendar类:<% Calendar calendar = Calendar.getInstance(); java.util.Date date = calendar.getTime(); // 格式化日期 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = format.format(date); %>
格式化时间
在将时间存入数据库之前,通常需要将其格式化为特定的字符串格式,你可以使用SimpleDateFormat类来实现这一点,以下是一些常见的格式化示例:

| 格式字符串 | 输出示例 |
|---|---|
yyyy-MM-dd |
2025-07-14 |
yyyy-MM-dd HH:mm:ss |
2025-07-14 12:34:56 |
yyyy/MM/dd |
2025/07/14 |
dd-MM-yyyy |
14-07-2025 |
将时间插入数据库
在JSP中,你可以使用JDBC(Java Database Connectivity)来连接数据库并执行SQL语句,以下是一个完整的示例,展示如何将格式化后的时间插入到MySQL数据库中:
<%@ page import="java.sql., java.util." %>
<%
// 获取当前时间并格式化
Calendar calendar = Calendar.getInstance();
java.util.Date date = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = format.format(date);
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/your_database";
String user = "your_username";
String password = "your_password";
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
conn = DriverManager.getConnection(url, user, password);
// 准备SQL语句
String sql = "INSERT INTO your_table (time_column) VALUES (?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, formattedDate);
// 执行SQL语句
pstmt.executeUpdate();
out.println("时间已成功插入数据库!");
} catch (Exception e) {
e.printStackTrace();
out.println("插入时间时发生错误:" + e.getMessage());
} finally {
// 关闭资源
if (pstmt != null) {
try { pstmt.close(); } catch (SQLException e) { / Ignored / }
}
if (conn != null) {
try { conn.close(); } catch (SQLException e) { / Ignored / }
}
}
%>
注意事项
-
数据库字段类型:确保数据库中的时间字段类型与插入的数据类型匹配,如果字段类型是
DATETIME,则插入的字符串格式应为yyyy-MM-dd HH:mm:ss。 -
时区问题:如果你的应用涉及多个时区,确保在获取和格式化时间时考虑时区差异,可以使用
Calendar类的setTimeZone方法来设置时区。
-
异常处理:在实际应用中,应妥善处理可能出现的异常,如数据库连接失败、SQL语句错误等。
-
安全性:避免直接拼接SQL语句,以防止SQL注入攻击,使用
PreparedStatement可以有效防止此类安全问题。
相关问答FAQs
Q1: 如何在JSP中获取当前时间的毫秒数?

A1: 你可以使用java.util.Date类的getTime()方法来获取当前时间的毫秒数。
<%
java.util.Date date = new java.util.Date();
long millis = date.getTime();
out.println("当前时间的毫秒数:" + millis);
%>
Q2: 如果我想在插入数据库时自动获取当前时间,应该怎么做?
A2: 你可以在SQL语句中使用数据库提供的获取当前时间的函数,在MySQL中,可以使用NOW()函数;在SQL Server中,可以使用GETDATE()函数,这样,你就不需要在JSP中手动获取和格式化时间。
<%
String sql = "INSERT INTO your_table (time_column) VALUES (NOW())";
// 执行SQL语句...
