word后的网站引用怎么做,开发一套小区多少钱,如何建设网站pdf,工业园网站建设在翻看自己以前写的惨不忍睹的代码时#xff0c;发现了自己曾经写的一个跟Date有关的坑。Date date new Date(2020, 1, 1);System.out.println(date);我的目的是想创建一个2020年1月1日的时间对象date#xff0c;但是我们创建的date真的就代表2020年1月1日吗#xff1f;错发现了自己曾经写的一个跟Date有关的坑。Date date new Date(2020, 1, 1);System.out.println(date);我的目的是想创建一个2020年1月1日的时间对象date但是我们创建的date真的就代表2020年1月1日吗错我们打印输出看一下结果发现没有。我们的年份变成了3920年这肯定不会啊但是为啥会这样呢我们看一下Date的构造方法就知道了。Deprecatedpublic Date(int year, int month, int date, int hrs, int min, int sec) {int y year 1900;// month is 0-based. So we have to normalize month to support Long.MAX_VALUE.if (month 12) {y month / 12;month % 12;} else if (month 0) {y CalendarUtils.floorDivide(month, 12);month CalendarUtils.mod(month, 12);}BaseCalendar cal getCalendarSystem(y);cdate (BaseCalendar.Date) cal.newCalendarDate(TimeZone.getDefaultRef());cdate.setNormalizedDate(y, month 1, date).setTimeOfDay(hrs, min, sec, 0);getTimeImpl();cdate null;}注意到int y year 1900;这行代码其实Date构造方法上的年份应该是距离1900年的差距。也就是说2020年在使用构造函数的时候要传的应该是120。当然这个方法已经被废弃了如果需要创建指定时间的Date对象建议可以使用一下代码DateFormat df new SimpleDateFormat(yyyy-MM-dd);Date date null;try {date df.parse(2020-01-01);} catch (ParseException e) {e.printStackTrace();}System.out.println(date);