关于Calendar中设置月份比实际小1的问题

    • 有如下程序,转化两个字符串数字为date类型,并判断是历史上的星期几,是否同为星期一

代码如下:

public static void main(String[] args) throws ParseException {
  •    //方法一:
  • 		String str1="2001-12-05";
  • 		String str2="2009-07-28";
  • 		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//注意:MM必须大写,不然会识别为分钟mm
  • 		Date date1=sdf.parse(str1);
  • 		Date date2=sdf.parse(str2);
  • 		System.out.println("转化后的时间分别为; "+date1+"       "+date2);
  •   //方法二:
  • 		Calendar ca1=Calendar.getInstance();
  • 		Calendar ca2=Calendar.getInstance();
  • 		ca1.set(2001, 11, 05);
  • 		ca2.set(2009, 06, 28);
  • 		//注意:实际传入的值 一般会是月份比实际大一月,所以传值的时候要月份-1
  • 		//而且国外的星期一实际上是中国的星期日,故星期会比中国大1天,转化成中国星期要-1
  • //		SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");  //输出看读入的实际日期
  • //		System.out.println(sdf1.format(ca1.getTime()));
  • 		System.out.println("两个日期分别是历史上的星期 "+(ca1.get(Calendar.DAY_OF_WEEK)-1)+" 和 星期 "+(ca2.get(Calendar.DAY_OF_WEEK)-1));
  • 		if((ca1.get(Calendar.DAY_OF_WEEK)-1)==(ca2.get(Calendar.DAY_OF_WEEK)-1)&&(ca1.get(Calendar.DAY_OF_WEEK)-1)==1){
  • 			System.out.println("两个日期都是星期一");
  • 		}
  • 			else
  • 				System.out.println("两个日期都不是星期一");
  • 		}
  • 	}
    • //2015-08-18  12:01:01
posted on 2015-08-18 12:06  临界  阅读(861)  评论(0编辑  收藏  举报