Calendar类使用点

  • 简介
  • 方法
  • 输出指定日期的前一个月的每一天

简介

1、Calendar是抽象类,创建实例时不能用new,而是使用Calendar.getInstance();
2、Date date=Calendar.getTime(),获取到的Date与使用java.util.Date:本质和是一 个从1970年1月1日0时整开始到某个时间点的亳秒数;
3、Calendar的月份是从0开始,0表示1月,11表示12月;
星期从星期天开始,1 表示星期天,7表示星期六;

方法

包含 set/get/add/getActualMaximum;equals方法:before/after/compareTo,返回值为boolean,boolean,int(-1,0,1),具体可查jdk api手册

public static void main(String[] args){//1、设置日期为指定值:Calendar cal=Calendar.getInstance();cal.set(2019,7,6);//2019-8-6cal.set(2019,7,6,21,10,5);//2019-8-6 21:10:5//2、输出先转为java.Util.Date然后使用simpleDateFormat输出(SSS表示毫秒)SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd E HH:mm:ss.SSS");//转为Date,与java.Util.Date的getTime()不同的是,前者返回Date,后者返回Long类型的毫秒数Date dt=cal.getTime();//转为StringString dtStr=sdf.format(dt);System.out.println(dtStr);//输出结果:20190806 星期二 21:10:05.753//3、 set/get开头的方法可以设置或者获取日期的任何一个字段,比如年份,月份int year = cal. get(Calendar.YEAR);//获取年份int month = cal.get(Calendar.MONTH) + 1;// 月份int weekday = cal. get(Calendar.DAY_OF_WEEK);System.out.println(year + ":" + month + ":" + weekday);//输出  2019:8:3(2019年 8月 星期 二)// 也可以直接修改字段cal.set(Calendar.YEAR, 2020);cal.set(Calendar.MONTH, 12);//12表示13月,自动记到下一年的1月showCalendar(cal.getTime());//输出  20210106 星期三 21:10:05.875//4、还可以在某个字段.上加多少值cal.add(Calendar.DATE, 100);// 在当前日期上往后推100天
//      cal.add(Calendar.DATE, -100);// 在当 前日期上往前推100天showCalendar(cal.getTime());//输出  20210416 星期五 21:10:05.462//5、 还可以获取某个字段的最大值,比如当前月份一-共有多少天int days = cal.getActualMaximum(Calendar.DATE);System.out.println("这个月有" + days + "天");//输出  这个月有30天}public static void showCalendar(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd E HH:mm:ss.SSS");System.out.println(sdf.format(date));}

输出指定日期的前一个月的每一天

     String str = "20150623";      //指定日期Calendar calendar = Calendar.getInstance();try {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");   //日期格式化Date date = sdf.parse(str);calendar.setTime(date);//calendar.add(calendar.DAY_OF_YEAR, -1);Date enddate = calendar.getTime();//System.out.println(enddate.toString());calendar.setTime(date);calendar.add(calendar.MONTH, -1);    //得到当前日期减一个月的时间点//Date begindate = calendar.getTime();while(calendar.getTime().before(enddate)){System.out.println(sdf.format(calendar.getTime()));calendar.add(Calendar.DAY_OF_MONTH, 1);}} catch (ParseException e) {System.out.println(e.getMessage());}

输出结果如下:

20150523
20150524
20150525
20150526
20150527
20150528
20150529
20150530
20150531
20150601
20150602
20150603
20150604
20150605
20150606
20150607
20150608
20150609
20150610
20150611
20150612
20150613
20150614
20150615
20150616
20150617
20150618
20150619
20150620
20150621
20150622

Calendar类使用点相关推荐

  1. JavaSE核心之一:Date类、Calendar类、Math类、枚举;

    1.Date类 1) java.util.Date类用于封装日期及时间信息,一般仅用它显示某个日期,不对他作任何操作处理,作处理用Calendar类,计算方便. 2) Date 类本质上拥有一个lon ...

  2. java常用类解析十:Date类和Calendar类示例

    1.Date类实例:格式化输出当前日期 [java] view plaincopy <span style="font-size:16px;">package demo ...

  3. 5、时间日期的处理:Java Date类、Calendar类详解

    在 Java 中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成.其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根 ...

  4. Java日期相关类:Date、SimpleDateFormat和Calendar类常用API代码示例

    Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间 Date类的构造方法 Date() :创建的是一个表示当前系统时间的Date对象 Date(long ...

  5. Java的calendar类用法

    YEAR  这是哪年 MONTH  这是月(从0开始) WEEK_OF_YEAR 今年的第几星期 WEEK_OF_MONTH 这个月的第几星期(从一开始) DATE  今天几号 DAY_OF_MONT ...

  6. 【Java6】Date类/Calendar类,System类/Math类,包装类,集合,泛型,内部类

    文章目录 1.Date类:getTime(),SimpleDateFormat 2.Calendar类:只有子类对象才能向上转型 3.System类:System.exit(0) 4.Math类:ce ...

  7. Calendar类的常用成员方法

    package com.learn.demo04.Calendar;import java.util.Calendar; import java.util.Date;/*Calendar类的常用成员方 ...

  8. Calendar类介绍_获取对象的方式

    package com.learn.demo04.Calendar;import java.util.Calendar;/*java.util.Calendar类:日历类Calendar类是一个抽象类 ...

  9. 第三次学JAVA再学不好就吃翔(part74)--Calendar类

    学习笔记,仅供参考 Calendar类 Calendar类是java.util包下的一个类,使用该类时需要导包. Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY ...

  10. JAVAAPI学习之Calendar类;Calendar类set()、add()、roll()方法区别

    JAVAAPI学习之Calendar类 http://blog.csdn.net/myjlvzlp/article/details/8065775(写的很好,清晰易懂) Calendar类set(). ...

最新文章

  1. php无极分类非递归_无限极分类算法,对你一定有帮助
  2. Http Hijacker
  3. 风力等级表(供参考)
  4. Android WebRTC视频旋转问题
  5. python学习-知识点进阶使用(end、while else、range、iter、list的多种遍历方式)
  6. 正则表达式的基本语法
  7. 简单的创建一个性能计数器
  8. 前端学习(1659):前端系列实战课程之瀑布流实现思路
  9. 划重点:微信小程序1月9日正式上线
  10. 单片机c语言数字频率计课程设计,单片机数字频率计设计和调试 课程设计论文...
  11. delphi if多个条件_【会计职场】老会计带你玩转Excel,IF函数的使用方法大全!小白必看!...
  12. 五步完成Spring整合Mybatis的完整示例
  13. JUC与JVM并发编程学习笔记01
  14. 史上最详细Sqlyog详细安装教程及使用
  15. h5打开麦克风权限录音_HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能...
  16. Java日期查询:日、周、旬、月、季度、年等时间操作
  17. 漫谈Anchor-based和Anchor-Free
  18. ffmpeg播放器实现详解 - 快进快退控制
  19. python拨打网络电话_0成本搭建IP电话系统,统一通信系统,呼叫中心系统-3CX快速安装手册...
  20. html5网页制作代码-我的班级网页 HTML期末大作业

热门文章

  1. 票据贴现和再贴现是什么
  2. 配置交叉编译工具链-嵌入式Linux
  3. HTML-spanがtext-align无效的问题
  4. uniapp | 安卓手机无线真机调试教程
  5. 红帽linux进单用户模式,如何进入RedHat Linux单用户模式
  6. python 数据归一化_python 实现对数据集的归一化的方法(0-1之间)
  7. r ridge回归_R语言区间数据回归分析
  8. 【机器学习】模型融合方法概述
  9. Java 基本数据类型以及封装类
  10. 【Ubuntu18.04 docker 启动容器,进入容器,执行脚本】