Java时间异常

时间:2011-08-12 18:16:59

标签: java oracle datetime

我使用此代码设置旧日期并将其存储在数据库中,但是当我从数据库中检索它时,值会从我存储的内容中更改。你能不能指出我正确的调试方向。

new Timestamp(new SimpleDateFormat("dd-MMM-yy").parse("31-DEC-79").getTime())

我在数据库中看到的值是1981-07-12 00:00:00.0为什么会有区别?

2 个答案:

答案 0 :(得分:2)

这可能会给出一个线索:

    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) - 正在交换日期/月份。

答案 1 :(得分:0)

抱歉,对于这种困惑,我在解析它时将日期改为月份。它正在工作和存储它应该。