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

问题描述:

我有一个问题,而试图用Java插入日期到SQL服务器:转换日期的字符串java.sql.Date格式

//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服务器中,但我只能得到年份,月份和日期。我应该如何将日期和时间插入数据库?

+1

你为什么要转换字符串 - >日历 - >字符串 - >日期 - > ....什么是重点?也做c.setTime(df.parse(input));在做出最终决定之后工作? –

+0

这里的要求是我将与06282013143533给予一个日期,我必须将其插入到sqlserver数据库,所以iam试图将日期转换为SQL Server兼容! – user2335416

检查您的数据类型在数据库或者它应该是为这个目的,你可以使用数据库功能NOW()为当前日期和time.and您的日期转换成时间戳

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

和插入此timestampTimestampDatetime数据库

+0

是的,它是日期时间在db? – user2335416

+0

可否请你告诉我如何得到它,它不适用于当前的日期和时间,它应该适用于以前的日期也 – user2335416

+0

将日期字符串转换为日期,然后将其转换为日期,然后插入它的时间戳。 –

java.sql.Date可用于仅存储月份的年份,月份和日期。它不能用于存储一天的时间。为了存储时间,您将不得不使用Timestamp。在你上面的代码,取代

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

通过

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

上述变化将会使事情做工精细。