[英]Due to change in environment java new date() function is giving date in 'DD-MON-YYYY HH:MM:SS' format. but only 'DD-MON-YYYY' format is expected
最近我們將java代碼從AWS環境遷移到OCI環境。 下面是給出問題的代碼。
sql.addSQLToWhereClause(XXXTable, "? between table1.start_date and table1.end_date")
.addSQLToWhereClause(YYYTable, "table1.ORG_ID = ? ")
.addSQLToWhereClause(XXXTable, "table1.LANG_CODE = ? ")
.bind(new Date())
.bind(ConstValues.ORG_ID)
.bind(locale.toString().toUpperCase());
在 AWS 環境中它工作正常,但在 OCI 環境中我們得到錯誤:ORA-01830: date format picture ends before converting entire input string
我們收到此錯誤是因為.bind(new Date()) 將“07-JAN-2021 10:49:04”放入第一個參數中。 但預期值為 '07-JAN-2021'
請建議為什么要在當前日期提供此附加信息,以及我們如何在不更改 java 代碼的情況下將其刪除。
謝謝拉胡爾
Object Java 的java.util.Date
class 實例總是包含時間部分。 為什么它在 AWS 上的行為會有所不同……——不知道!
但我假設bind(java.util.Date)
的實現在這些環境中是不同的,因為Date.toString()
的實現將帶有與問題中顯示的完全不同的 output 。
因此,請檢查提供相應 class 的庫的版本。
最近我們將 java 代碼從 AWS 環境遷移到 OCI 環境。 下面是給出問題的代碼。
sql.addSQLToWhereClause(XXXTable, "? between table1.start_date and table1.end_date")
.addSQLToWhereClause(YYYTable, "table1.ORG_ID = ? ")
.addSQLToWhereClause(XXXTable, "table1.LANG_CODE = ? ")
.bind(new Date())
.bind(ConstValues.ORG_ID)
.bind(locale.toString().toUpperCase());
在 AWS 環境中它工作正常,但在 OCI 環境中我們收到錯誤:ORA-01830:日期格式圖片在轉換整個輸入字符串之前結束
我們收到此錯誤是因為 .bind(new Date()) 將 '07-JAN-2021 10:49:04' 放在第一個參數中。 但預期值為 '07-JAN-2021'
請說明為什么此附加信息會在當前日期出現,以及我們如何在不更改 java 代碼的情況下將其刪除。
謝謝拉胡爾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.