您的位置:首页 > 编程语言 > Java开发

java官方推荐代替Date的Calendar究竟是个什么?

2020-06-06 05:37 537 查看

Calendar,java中一个强大的日期工具,java官方都推荐使用Calendar来代替Date的使用,使用它可以让你更快的知道"1997年9月19日"是周几,能让你知道"2005年8月14日"是8月的第几周。

1.自定义时间,Date转Calendar

Calendar calendar = Calendar.getInstance();
//       指定年、月、日、时、分、秒,月份是从0开始的所以要减1
calendar.set(1997, 05 - 1, 17, 17, 20, 55);
System.out.println("自定义时间=>" + calendar.getTime());
//        date转换为Calendar
Date date = new Date();
calendar.setTime(date);
System.out.println("Date转Calendar=>" + calendar.getTime());

运行结果

2.获取当前年月日,时分秒及星期

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);//年
int month = calendar.get(Calendar.MONTH) + 1;//月
int day = calendar.get(Calendar.DAY_OF_MONTH);//日
int hour = calendar.get(Calendar.HOUR_OF_DAY);//时
int minute = calendar.get(Calendar.MINUTE);//分
int seconds = calendar.get(Calendar.SECOND);//秒
//        每周的第一天是周日
int week = calendar.get(calendar.DAY_OF_WEEK);//星期
System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+seconds+"  "+week);

运行结果

3.加减

Calendar calendar = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
calendar.add(Calendar.YEAR,1);
System.out.println("年+1=>"+simpleDateFormat.format(calendar.getTime()));
calendar.add(Calendar.YEAR,-2);
System.out.println("年-2=>"+simpleDateFormat.format(calendar.getTime()));

运行结果:

4.两个日期相差天数

Calendar calendar = Calendar.getInstance();
calendar.set(2020,5-1,17);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(2019,5-1,17);
System.out.println("相隔了"+(calendar.getTimeInMillis()-calendar1.getTimeInMillis())/(24 * 60 * 60 * 1000));

运行结果:

Calendar 的常用属性

YEAR:年份
MONTH:月份
DATE:同DAY_OF_MONTH,日期
DAY_OF_MONTH:同DATE,日期
DAY_OF_YEAR:这一天是这一年中的第几天
DAY_OF_WEEK_IN_MONTH:当前月中的第几周
DAY_OF_WEEK:一周中的第几天 / 星期
HOUR:12小时制的时间
HOUR_OF_DAY:24小时制的时间
MINUTE:分钟数
SECOND:秒数
MILLISECOND:毫秒

好了,以上就是Calendar的基础用法,至于其他更强大的方法还需要我们通过自己敲代码来感受与探索。若有哪里有写错的地方,欢迎纠正!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: