考虑以下代码段:
Calendar futureDate = Calendar.getInstance();
int year = 2011;
int month = 11;
int day = 14;
futureDate.set(year,month, day);
System.out.println(futureDate.toString());
java.sql.Date sqlDate = new java.sql.Date( futureDate.getTime().getTime());
从futureDate.toString()的打印输出为:
..... YEAR = 2011,MONTH = 11,WEEK_OF_YEAR = 43,WEEK_OF_MONTH = 4,DAY_OF_MONTH
= 14,DAY_OF_YEAR = 289,DAY_OF_WEEK = 1,DAY_OF_WEEK_IN_MONTH = 3,AM_PM = 0,HOUR
= 11,HOUR_OF_DAY = 11,MINUTE = 32,SECOND = 51,MILLISECOND = 117,ZONE_OFFSET =
-18000000,DST_OFFSET = 3600000]
这表明Calendare对象具有正确的日期。但是,在转换为sql日期并存储在数据库中(MySQL通过JDBC)之后,该日期的MySQL表显示为“
2011-12-14”,而不是“ 2011-11-14”。我本来会怀疑语言环境和时区,但是这些会导致一天中的时间而不是日期的月份中出现差异。
关于我做错了什么的任何线索?