2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
改變你的面具
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");
所以你有了
java.sql.Timestamp timeStampDate = null;
String dateString = "2018-10-17T22:37:10.000+0000";
try {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = formatter.parse(dateString);
timeStampDate = new Timestamp(date.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
順便說一句cast,你不應(yīng)該需要Date
為我的懈怠道歉,我匆忙中沒有測試輸出,根據(jù)@andreas 評論,正確的掩碼實(shí)際上是yyyy-MM-dd'T'HH:mm:ss.SSSZ

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
java.time
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSXX");
String dateString = "2018-10-17T22:37:10.000+0000";
OffsetDateTime odt = OffsetDateTime.parse(dateString, formatter);
System.out.println("Parsed datetime: " + odt);
此代碼的輸出是:
解析日期時(shí)間:2018-10-17T22:37:10Z
為了保存到 MySQL 中,最好使用 datetime 對象,但是Timestamp該類存在設(shè)計(jì)問題并且現(xiàn)在已經(jīng)過時(shí)了。很抱歉我沒有使用 MySQL 的經(jīng)驗(yàn),但我認(rèn)為以下應(yīng)該可行:
PreparedStatement ps = myDatabaseConnection.prepareStatement(
"insert into my_table (my_timestamp) values (?)");
ps.setObject(1, odt);
添加回答
舉報(bào)