java - Java GregorianCalendar 中的 DAY_OF_WEEK 始终返回 7

标签 java calendar dayofweek gregorian-calendar

所以我想用 Java GregorianCalendar 做一些事情,这似乎比它应该做的要困难得多。我想从月份和日期获取星期几。但它不会那样做。我知道人们经常得到错误的答案,因为他们不知道月份是从 0 开始编号的,而 DAY_OF_WEEK 是从 1 开始编号的(例如 herehere )。但这不是我的问题。我的问题是 DAY_OF_WEEK 总是、总是返回 7,无论我将日期设置为什么。当我将 GregorianCalendar 转换为字符串时,DAY_OF_WEEK 显示为 ?,即使我设置了年、月和日。

发生这种情况的代码:

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,offset=-18000000,dstSavings=3600000,useDaylight=true,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));

关于java - Java GregorianCalendar 中的 DAY_OF_WEEK 始终返回 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426144/

相关文章:

calendar - 唯一日历事件 UID_2445 为 null

Android 7.x (API24) WEEK_OF_MONTH 日历错误?

php - 如何在 Google Calendar API v3 PHP 中获取开始日期

JavaScript:将日/周转换为年

java - 您可以将 WebElement 转换为 WebDriver 吗?

java - 我在 JFrame 中的重绘不起作用

java - 在 Java 中,如何以整数的反转二进制形式获取 1 的位置?

java - 为什么我的单词计数器有时会减一?

javascript - Javascript 中日期范围内的特定天数

mysql - 只在mysql中选择周五和即将到来的周一