【问题标题】:Convert Joda Date Time String To Java.Sql.TimeStamp for an INSERT将 Joda 日期时间字符串转换为 Java.Sql.TimeStamp 以进行 INSERT
【发布时间】:2016-08-02 21:31:04
【问题描述】:

这是我的字符串:2016-07-29T17:15:46.838Z
我想将它插入到 MySQL DATETIME(6) 列中。

这是我创建的将字符串转换为 java.sql.Timestamp 的方法

private java.sql.Timestamp convertToJavaSqlTimeStamp(String p_dateTimeString) {
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss:SSS");
java.sql.Timestamp _timeStamp = new java.sql.Timestamp(formatter.parseDateTime(p_dateTimeString).getMillis());
return _timeStamp;
}

.
.
.

SQL 插入逻辑...

PreparedStatement preparedStatement ;
preparedStatement  = _mysqlConn.prepareStatement("INSERT INTO myTable (my_date_time) VALUES (?)");
preparedStatement.setTimestamp(1, convertJodaDateTimeStringToJavaSqlTimeStamp("2016-07-29T17:15:46.838Z"));
preparedStatement.executeUpdate();

错误消息:无效格式:“2016-07-29T17:15:46.432Z”在“-07-29T17:15:46.432Z”处格式错误

【问题讨论】:

  • 您传递给您的方法的格式似乎与它所期望的格式不同。我特别不熟悉Java,但我怀疑这样的东西会更合适DateTimeFormat.forPattern("yyyy-MM-ddTHH:mm:ss.SSSZ") (可能对文字T和Z进行一些转义。)

标签: java mysql datetime


【解决方案1】:

取消 Uueerdo 的评论。以下是诀窍

DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ")

谢谢楼主。

【讨论】:

    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2022-08-18
    • 2017-08-31
    相关资源
    最近更新 更多