gpt4 book ai didi

Java将日期转换为sql时间戳

转载 作者:行者123 更新时间:2023-12-04 21:29:07 27 4
gpt4 key购买 nike

我正在尝试转换从 csv 文件中提取的日期(字符串),将其转换为 sql 时间戳并使用准备好的语句上传。我拥有的是:

String test = "8/10/2014 16:59";

DateFormat fromFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm");
fromFormat.setLenient(false);
DateFormat toFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");
toFormat.setLenient(false);
Date date2 = null;
try {
date2 = toFormat.parse(test);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//java.sql.Timestamp ts2 = java.sql.Timestamp.valueOf(date2);
//java.sql.Timestamp sqlDate2 = new java.sql.Timestamp(timestamp);
//sql_statement.setTimestamp(1, ts2);

如您所见,我的代码很乱,因为我正在尝试解决这个问题。我总是在 eclipse 中遇到错误:

java.text.ParseException: Unparseable date: "8/10/2014 16:59"
at java.text.DateFormat.parse(DateFormat.java:357)
at com.syntronic.client.thread.ORCThreadTejasInv.uploadOracleDBOptical(ORCThreadTejasInv.java:555)
at com.syntronic.client.thread.ORCThreadTejasInv.connectOracleDB(ORCThreadTejasInv.java:170)
at com.syntronic.client.thread.ORCThreadTejasInv.retrieveOracleTejas(ORCThreadTejasInv.java:125)
at com.syntronic.client.thread.ORCThreadTejasInv.run(ORCThreadTejasInv.java:84)
at java.lang.Thread.run(Thread.java:745)

我什至尝试使用:

SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" );
String yourformattedDate = sdf.format(test);

差异错误出现"

Exception in thread "Thread-6" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:301)
at java.text.Format.format(Format.java:157)
at com.syntronic.client.thread.ORCThreadTejasInv.uploadOracleDBOptical(ORCThreadTejasInv.java:562)
at com.syntronic.client.thread.ORCThreadTejasInv.connectOracleDB(ORCThreadTejasInv.java:170)
at com.syntronic.client.thread.ORCThreadTejasInv.retrieveOracleTejas(ORCThreadTejasInv.java:125)
at com.syntronic.client.thread.ORCThreadTejasInv.run(ORCThreadTejasInv.java:84)
at java.lang.Thread.run(Thread.java:745)

任何人都可以帮助解释为什么日期无法解析?以及如何将其转换为正确的 sql 时间戳?谢谢

最佳答案

您的fromFormat 格式说明符是

dd/MM/yyyy hh:mm

但应该是

dd/MM/yyyy HH:mm

并将 toFormat 更改为 yyyy-MM-dd HH:mm:ss.SSSSSS

那么你的解析代码应该从

date2 = toFormat.parse(test);

date2 = fromFormat.parse(test);
System.out.println(toFormat.format(date2));

我得到了输出

2014-10-08 04:59:00.000000

关于Java将日期转换为sql时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26270609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com