Java 更新数据库中错误的未来日期

Java 更新数据库中错误的未来日期,java,oracle,Java,Oracle,我正在使用JDBC更新oracle 11 g中的日期。为此,我读取了一个文件中的日期,并将数据库中的日期更新到此日期,最后一些日期正确更新,而一些日期更新到2015/2016年的未来日期。即使是文件也不能包含大于sysdate的日期。当我在更新日期之前打印日期时,它会正确打印,但当我签入数据库时,它会显示错误的日期 update data set IBOOLEAN1=?,LASTACTIVITYDATE=?,OPENDATE=? where SEMAIL=? and SEGMENTNAME

我正在使用JDBC更新oracle 11 g中的日期。为此,我读取了一个文件中的日期,并将数据库中的日期更新到此日期,最后一些日期正确更新,而一些日期更新到2015/2016年的未来日期。即使是文件也不能包含大于sysdate的日期。当我在更新日期之前打印日期时,它会正确打印,但当我签入数据库时,它会显示错误的日期

   update data set IBOOLEAN1=?,LASTACTIVITYDATE=?,OPENDATE=? where SEMAIL=? and SEGMENTNAME='EDU'  
  prepareStatement.setInt(1, 1);
  DateFormat dFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
   Date openDate = dFormat.parse(oldStringDate);
  timeStm = new Timestamp(newDate.getTime());
  prepareStatement.setTimestamp(2, timeStm);
  prepareStatement.setTimestamp(3, timeStm);
  prepareStatement.setString(4, emailAddress);

你能帮我解决这个问题吗?。

我不知道这是否解决了问题,因为你需要提供更多的细节,但这:

简化格式mm/dd/yyyy hh:mm:ss

这是不正确的。因为,MM表示月数,时间部分的分钟格式为MI

更新添加的测试用例

SQL> SELECT TO_CHAR(SYSDATE,'mm') mm,
  2         TO_CHAR(SYSDATE,'mi') mi
  3    FROM dual
  4  /

MM MI
-- --
10 17

您能给我们显示一些输入日期和插入的值吗?在您的代码中,您使用newDate作为参数,这在这个代码片段中没有定义。请再添加一些上下文。不,格式字符串似乎正确,请参阅:@1010,您能告诉我如何在分钟内使用MM格式吗?好的,MM是月的格式掩码,MI是分钟的格式掩码。对于SimpleDataFormat,MM表示年中的月,MM表示分钟,而不是MI。格式字符串在java端,我已签入数据库,但某些日期已正确更新,如文件中所示,未更改分钟和月份。