当前位置: 首页 > 知识库问答 >
问题:

日历获取年度返回错误结果

龚威
2023-03-14

我想创建一个日历对象,并将其设置为某一年和该年中的一周。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.WEEK_OF_YEAR, weekOfYear);  // 1
calendar.set(Calendar.YEAR, year); // 2016
setWeekChecked(calendar);

当我将calendar对象传递给setWeekChecked方法时,这是它的toString:

java.util.gregoriancalendar[time=?,arefieldsset=false,lenient=true,zone=America/New_York,firstDayofWeek=1,minimalDaysinfirstWeek=1,era=1,year=2016,month=0,week_ofyear=1,week_off_month=2,day_off_mear=7,day_off_week=5,day_off_week=5,minute=25,second=43,

在setWeekChecked方法中:

public void setWeekChecked(final Calendar cal) {
    final int targetWeek = cal.get(Calendar.WEEK_OF_YEAR); // Returns 1
    final int targetYear = cal.get(Calendar.YEAR); // Returns 2015??
}

这是calendar对象的toString:

java.util.gregoriancalendar[time=1451557543219,arefieldsset=true,lenient=true,zone=america/new_york,firstdayofweek=1,minimaldaysinfirstweek=1,era=1,year=2015,month=11,week_off_year=1,week_off_month=5,day_off_year=365,day_off_week=5,day_off_week=5,am_pm=0,hour=5,hour_off_day=5,_offset=0]

我做错了什么?

共有1个答案

韩恺
2023-03-14

我怀疑日历试图在2016年的第一周使用当前的一周(今天是周四)。

现在,看看你的日历设置,你有FirstDayOfWeek=1(所以周从周日到周六)和MinimalDaysinFirstWeek=1(所以一年的第一周包括1月1日)。

这意味着你日历上2016年的第一周从2015年12月27日到2016年1月2日。因此,第一周的星期四是12月31日--这正是你给我们看的日历上所说的。

    null
 类似资料:
  • 我想在将一周的第一天设置为周日后,将2018年10月9日这一周作为一年中的42周。我仍然从下面的代码片段中得到41的输出 我错过了什么吗? 背景:我们一周的开始可能是可变的。我们的配置能够让用户决定一周的第一天。

  • 问题内容: 执行以上代码段后,month的值为10而不是11。 问题答案: 月份从0而不是1索引,因此10是11月,而11是12月。

  • 我目前正尝试在Node.js中使用Microsoft Graph实现对日历/用户的直接登录。 grant_type: client_id:{app_id} client_secret:{app_secret} 作用域: 并且我使用一个令牌。 使用授权承载和上述令牌打开->将返回代码状态200以及在步骤1中使用的用户帐户。

  • 我有一个验证方法,将两个输入作为开始日期和结束日期,并检查结束日期是否有效,即在开始日期之后。我使用Calendar方法获取两个日期的毫秒数并得到差值。如果差值为负值,则其无效的结束日期,即结束日期早于开始日期。结束日期的毫秒值应始终大于开始日期。但在某些情况下,在开始日期的情况下,getTimeInMillis()会提供更大的值。 这是我的代码: 输出为: 这里2015-01-31是开始日期,2

  • 我正在努力使用Alamofire及其浏览器获取返回的json错误消息<代码>成功/。故障方法。 在使用这个之前,我可以使用

  • 本文向大家介绍iOS 获取公历、农历日期的年月日的实例代码,包括了iOS 获取公历、农历日期的年月日的实例代码的使用技巧和注意事项,需要的朋友参考一下 介绍三种方法获取 Date (NSDate) 的年月日。 用 date 表示当前日期。测试日期为公历 2017 年 2 月 5 日,农历丁酉年,鸡年,正月初九。 获取公历年月日 用 Calendar (NSCalendar) 获取公历年月日 结果