我有一个String
如下面要被转换为java.sql.Date
格式:转换为java.sql.Date
2017-08-31 01:40:00+00:00
我使用下面的代码,我可以看到日期仅解析为2017-08-31
和不是上面的整个字符串。有人可以建议吗?
java.util.Date utilDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(dateTimeStamp);
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
基于对答案的建议,我在下面执行:
String dateTimeStamp = "2017-08-31 01:40:00+00:00";
java.text.DateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ssZZ");
java.util.Date date = format.parse(dateTimeStamp);
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
System.out.println("timestamp - " + timestamp);
但是,我得到以下错误:
java.text.ParseException: Unparseable date: "2017-08-31 01:40:00+00:00"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.eneco.mysqlsink.WeatherForecastSink.WeatherForecastTask.put(WeatherForecastTask.java:94)
at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:435)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:251)
at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:180)
at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:148)
at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:146)
at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:190)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
的[如何转换的java.util可能的复制。 Date to java.sql.Date?](https://stackoverflow.com/questions/530012/how-to-convert-java-util-date-to-java-sql-date) – soorapadman
你需要什么'java .sql.Date' for?如果是针对数据库的,请注意,您可能已经(或已经拥有)了一个更新的JDBC驱动程序,它可以让您从数据库中检索java.time.LocalDate对象,并将相同类型存储到该对象中。如果是这样,我建议您从'java.sql'中取消过时的类,并使用'java.time'中的现代类替代。 –