[英]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.