【问题标题】:Converting a date a string to java.sql.Date format将日期字符串转换为 java.sql.Date 格式
【发布时间】:2013-07-01 13:07:44
【问题描述】:

我在尝试使用 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 服务器中,但我只得到年、月和日期。我应该怎么做才能将日期和时间插入数据库?

【问题讨论】:

  • 你为什么要转换字符串->日历->字符串->日期->....有什么意义? c.setTime(df.parse(input));完成后工作?
  • 这里的要求是我将获得一个 06282013143533 的日期,我必须将其插入到 sqlserver 数据库中,所以我试图将给定的日期转换为与 sql server 兼容的日期!!

标签: java sql date sqldatetime


【解决方案1】:

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

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

并将这个timestamp 插入数据库

【讨论】:

  • 你能告诉我如何得到它,它不适用于当前日期和时间,它应该也适用于以前的日期
  • 将您的日期字符串转换为日期,然后将其转换为日期,然后插入时间戳。
【解决方案2】:

java.sql.Date 只能用于存储年月日。它不能用于存储一天中的时间。

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

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

通过

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

以上更改将使一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2014-01-18
    • 2019-10-13
    相关资源
    最近更新 更多