我使用此代码设置旧日期并将其存储在数据库中,但是当我从数据库中检索它时,值会从我存储的内容中更改。你能不能指出我正确的调试方向。
new Timestamp(new SimpleDateFormat("dd-MMM-yy").parse("31-DEC-79").getTime())
我在数据库中看到的值是1981-07-12 00:00:00.0为什么会有区别?
答案 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)
抱歉,对于这种困惑,我在解析它时将日期改为月份。它正在工作和存储它应该。