2017-04-11 46 views
-2

我想用日期格式yyyy-MM-dd HH:mm:ss使用LocalDateTime.parse()方法解析日期,但是我實際得到的是格式爲yyyy-MM-ddTHH:mm:ss的日期。我不需要'T'。請參閱下面的代碼解析日期爲yyyy-MM-dd HH:mm:ss格式

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

我得到的結果是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','[email protected]‌​','address1','addres‌​s2','Bloomingdale','‌​IL','US','689850', 
     1,‌​1,'11111','2016-12-3‌​1 23:59:59') 

(在最後一個值沒有T

其數值是不工作:

VALUES('US','101','test','firstname','middleName','preferedN‌​ame','lastName', 
     '198‌​9-01-01','M',1,'1122‌​1123','[email protected]‌​','address1','addres‌​s2','Bloomingdale','‌​IL','US','689850', 
     1,‌​1,'11111','2016-12-3‌​1T23:59:59') 

(與上一次值T)。

+0

什麼問題? –

+1

你看到的是日期的內部表示。因爲'Date'沒有格式 – Jens

+0

2016-10-31T23:59:59 - 'T'導致問題,所以我無法將其保存到我的數據庫。 –

回答

5

LocalDateTime不作爲字符串存儲,而是作爲對象存儲。

你得到一個「T」,因爲的ToString()方法返回默認的ISO格式,如說: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html

的toString

公共字符串toString()

將此日期時間輸出爲字符串,例如2007-12-03T10:15:30。

的輸出將是以下ISO-8601格式中的一種:

UUUU-MM-dd'T'HH:毫米
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 
相關問題