将日期解析为yyyy-MM-dd HH:mm:ss格式

aji*_*rge -2 java database datetime spring-jdbc

我想使用LocalDateTime.parse()方法使用日期格式yyyy-MM-dd HH:mm:ss解析日期,但实际得到的是格式为yyyy-MM-ddTHH:mm:ss的日期.我不需要'T'.请参阅下面的代码

LocalDateTime.parse("2016-10-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Run Code Online (Sandbox Code Playgroud)

我得到的结果是2016-10-31T23:59:59.看到'T'.'T'导致问题,因此我无法将其持久保存到我的数据库中.我尝试将值保存在类型列中datetime; 我收到了错误 - org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar.

查看有效的值

VALUES('US','101','test','firstname','middleName','preferedN??ame','lastName',
       '198??9-01-01','M',1,'1122??1123','test@test.com??','address1','addres??s2','Bloomingdale','??IL','US','689850',
       1,??1,'11111','2016-12-3??1 23:59:59')
Run Code Online (Sandbox Code Playgroud)

(T最后一个值没有)

哪个不起作用:

VALUES('US','101','test','firstname','middleName','preferedN??ame','lastName',
       '198??9-01-01','M',1,'1122??1123','test@test.com??','address1','addres??s2','Bloomingdale','??IL','US','689850',
       1,??1,'11111','2016-12-3??1T23:59:59')
Run Code Online (Sandbox Code Playgroud)

(带有T最后一个值).

Lui*_*Vaz 5

LocalDateTime不存储为字符串,而是存储为对象.

你得到一个"T",因为.toString()方法默认返回ISO格式,如下所述:https: //docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html


public String toString()

将此日期时间输出为字符串,例如2007-12-03T10:15:30.

输出将是以下ISO-8601格式之一:

uuuu-MM-dd'T'HH:mm
uuuu-MM-dd'T'HH:mm:ss
uuuu-MM-dd'T'HH:mm:ss.SSS
uuuu-MM-dd'T'HH:mm :ss.SSSSSS
uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS

使用的格式将是最短的,输出省略的部分隐含为零的时间的完整值.

要根据需要输出,请使用格式化功能.

LocalDateTime d = LocalDateTime.parse("2016-10-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

System.out.println("toString: " + d.toString());
//toString: 2016-10-31T23:59:59                                                                                                                                                                                                                           
System.out.println("format:   " + d.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
//format:   2016-10-31 23:59:59  
Run Code Online (Sandbox Code Playgroud)