Java时间异常
我使用这段代码设置一个旧日期并将其存储在数据库中,但当我从数据库中检索它时,该值与我存储的值不同。你能告诉我调试的正确方向吗Java时间异常,java,oracle,datetime,Java,Oracle,Datetime,我使用这段代码设置一个旧日期并将其存储在数据库中,但当我从数据库中检索它时,该值与我存储的值不同。你能告诉我调试的正确方向吗 new Timestamp(new SimpleDateFormat("dd-MMM-yy").parse("31-DEC-79").getTime()) 我在数据库中看到的值是1981-07-12 00:00:00.0为什么会有差异?很抱歉,我在解析时将日期与月份切换。它正在正常工作和存储 这可能会提供一个线索: new Timestamp(new Simpl
new Timestamp(new SimpleDateFormat("dd-MMM-yy").parse("31-DEC-79").getTime())
我在数据库中看到的值是1981-07-12 00:00:00.0为什么会有差异?很抱歉,我在解析时将日期与月份切换。它正在正常工作和存储 这可能会提供一个线索:
new Timestamp(new SimpleDateFormat("MM-dd-yy").parse("31-12-79").getTime());
// 1981-07-12 00:00:00.0
1981-07-12是79年第31个月的第12天(我知道-没有第31个月,但java会这样解析)
您的日期/代码不是发布的,或者您正在正确解析日期,但您的数据库预期的日期是美国格式(MM dd yy),而您发送的日期是欧洲格式(dd MM yy)-日期/月份正在交换。这对我有效。您确定要查看数据库中的正确列/行吗?是的,我的数据库表中只有一列带有时间戳。我是否需要设置时区或类似的设置?您是否可以发布用于在数据库中存储此值的代码,并在以后检索它?您如何更新数据库?准备好的报表等?你能把代码也贴出来吗?我怀疑时区会造成2年的差异。基本上,我填充了我的域对象,我的服务方法调用了hibernate会话的saveOrUpdate方法。