Ett mycket bättre sätt att hantera detta är på din databassida. När du skapar tabellen, ange standardvärdet för TIMESTAMP kolumn som
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Exemplet visar en CREATE TABLE för MySQL men konceptet är detsamma. När du infogar din rad ska du bara inte ange något värde för kolumnen creation_date och databasen fyller i den automatiskt åt dig.
Med samma tabell, om du vill infoga datumet från Java, bör din kod se ut som
// Get current time
Timestamp now = new Timestamp(new Date().getTime());
try {
// Prepare INSERT through Connection
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO posts (title, creation_date) VALUES (?, ?)");
// Bind values
stmt.setString(1, title);
stmt.setTimestamp(2, now);
// Insert
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
Observera att du också skulle behöva öppna en DB Connection (conn objekt ovan) och stäng den när du är klar med den. Om du är ny på JDBC API, ta en titt på JDBC Basics
först.