我正在尝试将String解析为Timestamp,因为我需要将此数据保存在bbdd mysql上。
String dateString: "2018-10-17T22:37:10.000+0000"; java.sql.Timestamp timeStampDate = null; try { DateFormat formatter; formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); Date date = (Date) formatter.parse(dateString); timeStampDate = new Timestamp(date.getTime()); } catch (ParseException e) { log.debug("ERROR parser String to Timestamp to save bbdd. ", e.getMessage()); }
当我运行我的应用程序时,我收到以下捕获消息:
将解析器字符串错误解析为时间戳以保存bbdd。无法解析的日期:“ 2018-10-17T22:37:10.000 + 0000”
有谁能够帮我?
改变你的面具
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
cast
Date
*对我的懈怠表示 *歉意 ,我匆忙没有测试输出,按照@andreas注释,实际上是正确的遮罩yyyy-MM- dd'T'HH:mm:ss.SSSZ
yyyy-MM- dd'T'HH:mm:ss.SSSZ