Calendar对日期的操作

来源:互联网 发布:弗格森事件知乎 编辑:程序博客网 时间:2024/04/29 16:17

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等 日历之间之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类提供了操作日期的方法,如:获得某个时间是本周或本月的第几天,获得几天前,几小时前的时间,比较两个时间等等。

本文主要记载常用的如public int get(int field)public boolean after(Object when)public abstract voidadd(int field,int amount)方法。

在代码开始之前,先附上本文所用的时间日历,方便对比:


import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalendarDemo {public static void main(String[] args) {SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS");//当前时间Date nowTime = new Date();System.out.println("当前时间为:"+sf.format(nowTime));//获得Calendar类对象Calendar calendar = Calendar.getInstance();//将calendar的时间设置为当前时间,calendar.setTime(nowTime);/* * Calendar类的public int get(int field)方法 * 其中field在Calendar中都有定义,比如: * Calendar.DAY_OF_WEEK Calendar.DAY_OF_YEAR等 *///获得改时间的年份,同理,也可以获得月份,日期,小时等等System.out.println("今年是"+calendar.get(Calendar.YEAR)+"年");//打印该时间是所在周的第几天,从周日开始算System.out.println("今天是本周的第"+calendar.get(Calendar.DAY_OF_WEEK)+"天");//打印该时间是所在月的第几天System.out.println("今天是本月的第"+calendar.get(Calendar.DAY_OF_MONTH)+"天");/* * 日期的加减法 * field表示你要操作的节点,如:年,月,日等 *///获得24小时之前的时间calendar.add(Calendar.HOUR,-24);Date tenHoursAgo = calendar.getTime();System.out.println("24小时前的时间是:"+sf.format(tenHoursAgo));/* * 日期的比较 * Calendar类的public boolean after(Object when)方法 * 该方法比较calendar中的时间是否在所比较的时间之后 */calendar.setTime(nowTime);System.out.println("当前时间:"+sf.format(nowTime)+"是否在该时间:"+sf.format(tenHoursAgo)+"之后:"+calendar.after(tenHoursAgo));}}
打印结果如下:


0 0