java日历的使用(Calendar)
来源:互联网 发布:linux # $ 编辑:程序博客网 时间:2024/05/22 02:13
Calendar类位于java.util下,是一个工具类,能够帮我们轻松的实现日期的查询和转换。
实例化:
Calendar有一个静态方法getInstance可以取得Calendar的实例,通过对实例的操作可以获得我们想要的数据。
Calendar calendar = Calendar.getInstance();//获得calendar的实例(new出一个当前日历)
获取常量:
Calendar的类里面定义了一系列的静态常量,包括:
public static final int ERA = 0;// public static final int YEAR = 1;//年份 public static final int MONTH = 2;//月份,其中0为1月份,所以得到当前月份需要+1 public static final int WEEK_OF_YEAR = 3;//今年第几周 public static final int WEEK_OF_MONTH = 4;//当月第几周 public static final int DATE = 5;//Date型 public static final int DAY_OF_MONTH = 5;//当月第几天 public static final int DAY_OF_YEAR = 6;//当年第几天 public static final int DAY_OF_WEEK = 7;//星期几,从礼拜天开始算。
通过这些常量可以获得需要的信息:
Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.YEAR);//打印信息为2014,其他信息的获取方法类似
方法:
set: set(2014,03,02)设置日期为2014年4月2日(0为一月) set(Calendar.MONTH,4) 月份修改成5月get: get(Calendar.YEAR)得到年份setTime: setTime(new Date())设置date型的时间getTime()://得到date型的时间add():对日期进行加减操作
例子:
Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());calendar.add(Calendar.DATE,-1);//设置为前一天。calendar.add(Calendar.MONTH,-1)设置为前一个月Date date = calendar.getTime();//打印date:Thu Mar 13 21:27:57 CST 2014long time = calendar.getTimeInMillis();//打印time:1394717480989 单位为毫秒,可通过/(1000*60*60*24)换算为天,可用做计算两个日期相差几天。
格式化日期:
//设置格式化格式SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH为小写时为12小时制String date= sf.format(new Date());System.out.println(date);//输出结果为:2014-03-13 21:37:34
计算两个日期相差天数:
Date方式:
public class CountTwoDateDiffer {/** * 计算两个日期相差的天数 * @param args */public static void main(String[] args) {SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");try {Date startDate = sf.parse("2014-03-12");long startTime = startDate.getTime();Date endDate = sf.parse("2014-03-14");long endTime = endDate.getTime();int count = (int)(endTime - startTime)/(1000*24*60*60);System.out.print(count);} catch (ParseException e) {e.printStackTrace();}}}打印结果:2
Calendar方式:
public class CountTwoDateDiffer {/** * 计算两个日期相差的天数 * @param args */public static void main(String[] args) {Calendar calendar = Calendar.getInstance();//插入日期calendar.set(2014, 03, 12);//得到毫秒数long startTime = calendar.getTimeInMillis();calendar.set(2014,03, 14);long endTime = calendar.getTimeInMillis();System.out.println("两个日期相差"+(endTime-startTime)/(1000*24*60*60)+"天");}}打印结果:两个日期相差2天
得到这个月最后一天的信息:
public class CalendarTest {public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); //得到一个月最后一天,Date型 int last = calendar.getActualMaximum(Calendar.DATE); //将最后一天的日期存入calendar calendar.set(Calendar.DATE, last); int weekDay = calendar.get(Calendar.DAY_OF_WEEK); Date date = calendar.getTime(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); String day = sf.format(date); //1表示星期日,2表示星期一 System.out.println("这个月最后一天是"+day+"星期"+(weekDay-1));}}
这个月最后一天是2014-03-31星期3
由此可以联想到,当我们Calendar calendar = Calendar.getInstance();生成一个实例的时候,会默认放入一个date型的值,calendar.setTime(new Date())。然后我们通过set()改变其中的年,月,日。
某一天是星期几:
//1.calendar.set(2014,03,20);//03设置的是4月份。calendar.add(Calendar.MONTH,-1);//-1为3月int weekDay = calendar.get(Calendar.DAY_OF_WEEK)-1;//星期天为1,所以要-1//2.默认的是求当月20号是礼拜几Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DATE,20);int weekDay = calendar.get(Calendar.DAY_OF_WEEK);//3.SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");Date date = sf.parse("2014-03-20")//首先要得到一个某一天的date类型Calendar cl = Calendar.getInstance();cl.setTime(date);int dayOfweek = cl.get(Calendar.DAY_OF_WEEK)我们都可以直接calendar.set(年,月,日);来对日期进行操作。比如说calendar.add(Calendar.DATE,-1);
0 0
- java日历的使用(Calendar)
- Java Calendar 日历类的基本使用
- Java中日历类Calendar的使用
- Calendar日历的使用
- 日历Calendar控件的使用
- 日历控件Calendar的使用
- java的Calendar(日历)类
- java的Calendar(日历)类
- java Calendar 日历的打印
- JAVA 按年月打印日历 Calendar的简单使用
- java日历类Calendar简单使用
- java日历类Calendar简单使用
- angularjs-ui-calendar日历插件的使用
- java的Calendar(日历)类 (转)
- Calendar java日历
- Java日历类Calendar
- java Calendar日历类
- java Calendar类(日历)
- Asp.net 用datalist嵌套的方法实现二级菜单的分类导航
- 编译和运行Codec Engine examples介绍
- P2020 clock 设置
- linux GLIBCXX_3.4.9 not found 解决
- openSUSE13.10 U盘制作第一视角
- java日历的使用(Calendar)
- C++ primer 类 成员变量 成员函数 友元
- Technical recruiting is broken: Here are 4 ways to hire better
- Python计算——二维数组的实现
- hdu1162(最小生成树prim)
- 【C++】PAT(basic level)1010. 一元多项式求导 (25)
- 第二周作业
- c实现哥德巴赫猜想
- 关于srand()和rand()产生随机数的一点问题