2015-05-12 4 views
1

Я пытаюсь передать поле даты в таблицу. Колонна из SQL метки времени и я получаю исключение во время выполненияСоответствующая метка времени java для метки времени 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?

Спасибо. Piyush

+0

Не могли бы вы поделиться фрагмент кода? –

+0

Добавьте исходный код, чтобы мы могли помочь. – Kiki

+1

Создает ли SimpleDateFormat объект datetime или строку? Если это последний, не делайте этого. Отправьте объект datetime в качестве параметра запроса. –

ответ

1

С помощью milisecond level SimpleDateFormatter вы можете сопоставить их. Пожалуйста, попробуйте вот так:

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 
1

моя проблема была из-за формата, спасибо

SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); 
Смежные вопросы