-
cal1.add(Calendar.DAY_OF_MONTH,1); -
cal1.add(Calendar.DAY_OF_YEAR,1);
-
cal1.add(Calendar.DATE,1);
就单纯的add操作结果都一样,因为都是将日期+1
就没有区别说是在月的日期中加1还是年的日期中加1
但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1
将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现
DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。
同样,还有DAY_OF_WEEK,用来获得当前日期是一周的第几天
(。♥ᴗ♥。) Ψ( ̄∀ ̄)Ψhi✿(。◕ᴗ◕。)✿ (✖人✖)(▼ヘ▼#)
1、什么是Date和Calendar
a、Date类表示的是特定的,瞬间的,它能精确毫秒。
b、Calendar它是一种抽象类,相比Date它在操作日历的时候提供了一些方法来操作日历字段
2、Date和Calendar常见的使用方式
a、Date
-
Date date = new Date();
-
System.out.println("毫秒:"+date.getTime());//输入毫秒
-
-
//时间转字符串
-
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
String time = sdf.format(date);
-
System.out.println("时间转字符串:"+time);
-
-
//利用字符串来转时间格式(记得抛出异常)
-
String time02 = "2018-09-05";
-
SimpleDateFormat sdf2 = new SimpleDateFormat ("yyyy-MM-dd");
-
Date date2 = sdf2.parse(time02);
-
System.out.println("字符串转时间格式:"+date2);
b、Calendar
-
// 使用默认时区和语言环境获得一个日历
-
Calendar cal = Calendar.getInstance();
-
// 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
-
System.out.println("年:" + cal.get(Calendar.YEAR));
-
System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
-
System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
-
System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
-
System.out.println("分:" + cal.get(Calendar.MINUTE));
-
System.out.println("秒:" + cal.get(Calendar.SECOND));
-
-
//手动设置某个日期
-
Calendar cal02 = Calendar.getInstance();
-
//注意,设置时间的时候月份的下标是在0开始的
-
//设置时间不一定要这6个参数3个参数也是可以的
-
cal02.set(2018,9,1,12,0,0);//二零一八年十月一号十二点
-
System.out.println(cal02.getTime());
-
c、Date和Calendar互相转换
-
1、Calendar转Date
-
Calendar cal = Calendar.getInstance();
-
Date date = cal.getTime();
-
Calendar cal = Calendar.getInstance();
-
Date date = cal.getTime();
-
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-
String s = simpleDateFormat.format(date);
-
System.out.println("时间为===="+s);
2、Date转Calendar
-
Date date2 = new Date();
-
Calendar cal2 = Calendar.getInstance();
-
cal2.setTime( date );
-
Date date2 = new Date();
-
Calendar cal2 = Calendar.getInstance();
-
cal2.setTime(date );
-
System.out.println(cal2.get(Calendar.YEAR) +"-"+(cal2.get(Calendar.MONTH)+1)+"-"+cal2.get(Calendar.DATE));
----------------------------------------------------------------------------------------------------------------------
注意:
在大多数情况下,date要实现的功能都可以通过calendar来实现的(少数情况除外),在这上面只是列出的常用方法,感兴趣的程序猿可以通过这些方法来简单的去使用Calendar和Date,在使用的过程当中一点要注意代码的中的注释哦。
3、Date和Calendar有什么区别
区别:比较哟明显的区别是Date是日期,Calendar是日历,Date是类,Calendar是抽象类。当然,你也可以觉得Calendar是Date的加强版
4、在开发过程当中,使用Date和Calendar哪种的效率更高
这个就要看项目的具体需求了,不过在当前的开发环境中,Calendar使用的情况是比Date更多,毕竟它提供的方法大大的方便了我们程序猿完成跟时间有关的功能,但是这并不意味这Date就会淘汰,毕竟他们两个还是有区别的,笔者只是认为Calendar用起来更好。