例如,我有这个字符串:06/10/2013 18:29:09。我想转换此字符串并将其放在SQL数据库中(作为日期)。
如何将其转换为sql日期,以便将其插入数据库?我希望小时数和秒数保持不变。
我尝试了以下内容:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date javaDate = sdf.parse("06/10/2013 18:29:09");
java.sql.Date date = new java.sql.Date(javaDate.getTime());
答案 0 :(得分:5)
问题在于:
java.sql.Date date = new java.sql.Date(javaDate.getTime());
java.sql.Date
存储时间戳的日期部分。如果您希望/需要同时处理日期和时间,请改为使用java.sql.Timestamp
:
java.sql.Timestamp date = new java.sql.Timestamp (javaDate.getTime());
更多信息:
答案 1 :(得分:0)
如果您正在使用String类型进行日期输入,然后您想将其保存在MySQL等数据库中,则应使用适当的日期格式。有一个名为“ SimpleDateFormat ”的类,您可以将其用于此目的。您可以在以下链接中找到示例,并简要说明其工作原理。希望它有所帮助。
示例: http://www.java2s.com/Tutorial/Java/0040__Data-Type/SimpleDateFormat.htm
最诚挚的问候。
答案 2 :(得分:0)
您将使用SimpleDateFormat对象将字符串解析为java.util.date,然后使用getTime()方法实例化java.sql.Date。
String input = "06/10/2013 18:29:09";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
java.util.Date dt = sdf.parse(input);
java.sql.Date dtSql = new java.sql.Date(dt.getTime());
答案 3 :(得分:0)
这是一个简单的演示。在像这样的数据库表中。
您可以像这样插入。
//the SQL statement for creating the database table
create table user(id, integer primary key, username varchar(100), date_created varchar(100));
//the java code to insert into the table created above.
try{
String date = new SimpleDateFormat("dd/MM/YYYY HH:mm:ss").format(new Date());
String sql = "insert into user(username, date_created) values('olupotd', '"+date+"')";
int done = statement.executeUpdate(sql);
if(done > 0)
//inserted
else
//not inserted.
}catch(java.sql.SQLException e){}
希望有所帮助