2 回答
TA贡献1828条经验 获得超4个赞
改变你的面具
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,你不应该需要Date
为我的懈怠道歉,我匆忙中没有测试输出,根据@andreas 评论,正确的掩码实际上是yyyy-MM-dd'T'HH:mm:ss.SSSZ
TA贡献1780条经验 获得超5个赞
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);
此代码的输出是:
解析日期时间:2018-10-17T22:37:10Z
为了保存到 MySQL 中,最好使用 datetime 对象,但是Timestamp该类存在设计问题并且现在已经过时了。很抱歉我没有使用 MySQL 的经验,但我认为以下应该可行:
PreparedStatement ps = myDatabaseConnection.prepareStatement(
"insert into my_table (my_timestamp) values (?)");
ps.setObject(1, odt);
添加回答
举报