Gran soñador 2021-03-10 08:16 采纳率: 100%
浏览 97
已采纳

为什么Calendar类DAY_OF_WEEK返回值和现实有差别?

import java.util.Calendar;
import java.util.GregorianCalendar;

public class TestCalendar {
	public static void main(String[] args) {
		//获得日期的相关元素
		Calendar calendar = new GregorianCalendar(2021,3,9,15,9,50);
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int day = calendar.get(Calendar.DATE);  //也可以使用DAY_OF_MONTH;
		int weekday = calendar.get(Calendar.DAY_OF_WEEK); 
		System.out.println(year);
		System.out.println(month);      //0-11表示对应的月份。0是1月,1是2月。。。11是12月
		System.out.println(day);
		System.out.println(weekday);
	
	}
}

 2021年3月10日,星期三,但是DAY_OF_WEEK返回值为7(下图),实际应返回4,

 

import java.util.Calendar;
import java.util.GregorianCalendar;

public class TestCalendar {
	public static void main(String[] args) {
		//获得日期的相关元素
		Calendar calendar = new GregorianCalendar(2021,3,9,15,9,50);
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int day = calendar.get(Calendar.DATE);  //也可以使用DAY_OF_MONTH;
		int weekday = calendar.get(Calendar.DAY_OF_WEEK); 
		System.out.println(year);
		System.out.println(month);      //0-11表示对应的月份。0是1月,1是2月。。。11是12月
		System.out.println(day);
		System.out.println(weekday);
	
	}
}

把时间换为2021年3月9日,DAY_OF_WEEK返回值变为6,实际值应为3

 

展开全部

  • 写回答

2条回答 默认 最新

  • viewgroup 2021-03-10 08:27
    关注

    因为月份是从0开始的,,你传三月,,输出一下就可以看出来,,结果是

    2021
    3
    9
    6
    2021-04-09 15:09:50

    看到没,,到四月了,,你再去看看4月9号是周五,美国人周日是第一天,,所以周五就是第六天,,所以代码没有错,,你参数有问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部