DAY_OF_WEEK总是在Java GregorianCalendar中返回7
发布时间:2020-12-15 04:44:24 所属栏目:Java 来源:网络整理
导读:所以我想用 Java GregorianCalendar做一些似乎比它应该更难的事情.我希望从月份和日期获得一周中的某一天.但它不会那样做.我知道人们经常得到错误的答案,因为他们不知道月份从0开始编号而DAY_OF_WEEK从1开始编号(如 here和 here).但那不是我的问题.我的问题
所以我想用
Java GregorianCalendar做一些似乎比它应该更难的事情.我希望从月份和日期获得一周中的某一天.但它不会那样做.我知道人们经常得到错误的答案,因为他们不知道月份从0开始编号而DAY_OF_WEEK从1开始编号(如
here和
here).但那不是我的问题.我的问题是,无论我将日期设置为什么,DAY_OF_WEEK总是会返回7.当我将GregorianCalendar转换为字符串时,DAY_OF_WEEK显示为?,即使我已设置年,月和dayOfMonth.
发生这种情况的代码: GregorianCalendar theDate; public ObservableDate(int year,int month,int dayOfMonth,int hourOfDay,int minute,int second) { theDate = new GregorianCalendar(year,month,dayOfMonth,hourOfDay,minute,second); theDate.setFirstDayOfWeek(GregorianCalendar.SUNDAY); System.out.println("DAY_OF_WEEK = "+theDate.DAY_OF_WEEK); System.out.println(theDate.toString()); } 调用它的代码: ObservableDate theDate = new ObservableDate(2001,3,24,9,00,00); 输出: DAY_OF_WEEK = 7 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2001,MONTH=3,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=24,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?] 知道为什么会这样吗? 解决方法
您正在访问字段常量而不是获取其值.我相信你想用的东西,
System.out.println("DAY_OF_WEEK = " + theDate.get(Calendar.DAY_OF_WEEK)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |