将日期转换为字符串为java.sql.Date格式

时间:2013-07-01 13:07:44

标签: java sql date sqldatetime

尝试使用Java在SQL服务器中插入日期时遇到问题:

//final String input = "20120823151034";
final String input = "06282013143533";

final DateFormat df = new SimpleDateFormat("MMddyyyyHHmmss");
final Calendar c = Calendar.getInstance();
c.setTime(df.parse(input));
//c.add(Calendar.MILLISECOND, 1);
String s=df.format(c.getTime());
java.util.Date parsedUtilDate = df.parse(s);  
java.sql.Date sqltDate= new java.sql.Date(parsedUtilDate.getTime());  
System.out.println(sqltDate);

在这里,我希望将完整的字符串输出为插入SQL Server的年,月,日,小时,分钟和秒,但我只得到年,月和日期。如何将日期和时间插入数据库?

2 个答案:

答案 0 :(得分:4)

检查数据库中的DATA类型,它应该是TimestampDatetime为此目的,您可以使用数据库函数NOW()获取当前日期和时间。并将您的日期转换为时间戳< / p>

  Timestamp timestamp = new Timestamp(new Date().getTime());

并将此timestamp插入数据库

答案 1 :(得分:1)

java.sql.Date可用于仅存储该月的年,月和日。它不能用于存储一天中的时间。

为了存储时间,您必须使用Timestamp。在上面的代码中,替换

java.sql.Date sqltDate= new java.sql.Date(parsedUtilDate.getTime()); 

通过

java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedUtilDate.getTime());

上述更改将使事情正常。