java - 将java时间戳与sql时间戳相匹配?

标签 java sql

我正在尝试将日期字段传递到表中。该列是 sql 时间戳,我不断收到运行时异常

java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff] at 
java.sql.Timestamp.valueOf(Timestamp.java:235)
at kafkaTest.TruckScheme.deserialize(TruckScheme.java:51) 
at backtype.storm.spout.SchemeAsMultiScheme.deserialize(SchemeAsMultiScheme.java:33) 
at storm.kafka.KafkaUtils.generateTuples(KafkaUtils.java:189) 
at storm.kafka.PartitionManager.next(PartitionManager.java:121) at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:124) 
at backtype.storm.daemon.executor$fn__4949$fn__4964$fn__4993.invoke(executor.clj:585) 
at backtype.storm.util$async_loop$fn__452.invoke(util.clj:465) 
at clojure.lang.AFn.run(AFn.java:24) 
at java.lang.Thread.run(Thread.java:745)

我尝试使用 SimpleFateFormat 对其进行格式化,但仍然遇到相同的错误。 有没有办法让java日期格式符合sql时间戳类型的确切格式?

谢谢。 皮尤什

最佳答案

使用毫秒级的SimpleDateFormat,就可以匹配它们。请尝试这样;

 public static void main(String args[]) throws IOException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
    String DateToStoreInDataBase= sdf.format(new Date()); // java.util.Date
    System.out.println(DateToStoreInDataBase);

    Timestamp ts = Timestamp.valueOf(DateToStoreInDataBase); // java.sql.Timestamp
    System.out.println(ts);
  }

结果是;

2015-05-12 09:02:02.645
2015-05-12 09:02:02.645

关于java - 将java时间戳与sql时间戳相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192110/

相关文章:

websphere-liberty 上的 java web 应用程序和 Postgres

java - 什么是远程 EJB?

java - 枚举持续时间问题

sql - postgresql 统计 child 的数量

java - 在 Java 中将 float 转换为时间?

Java字时钟

mysql - sql 查询以显示本月创建的记录

MySQL,如何将 UNION 的输出提供给 WHERE 子句

java - 在 Java 中设置默认模式名称

mysql - "The multi-part identifier could not be bound"与内连接