| 方法名 | 说明 |
|---|---|
| public int get(int field) | 返回给定日历字段的值 |
| public abstract void add(int field, int amount) | 根据日历的规则,将指定的时间量添加或减去给定的日历字段 |
| public final void set(int year,int month,int date) | 设置当前日历的年月日 |
public int get(int field):返回给定日历字段的值
Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int date = c.get(Calendar.DATE);System.out.println(year + "年" + month + "月" + date + "日");
public abstract void add(int field, int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段
需求1: 3年前的今天
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,-3);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH) + 1;
date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
需求2: 10年后的10天前
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR,10);
c.add(Calendar.DATE,-10);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH) + 1;
date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
public final void set(int year,int month,int date):设置当前日历的年月日
Calendar c = Calendar.getInstance();
c.set(2050,10,10);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH) + 1;
date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
二月天案例(应用)
public class CalendarTest {public static void main(String[] args) {//键盘录入任意的年份Scanner sc = new Scanner(System.in);System.out.println("请输入年:");int year = sc.nextInt();//设置日历对象的年、月、日Calendar c = Calendar.getInstance();//月份从0开始算c.set(year, 2, 1);//3月1日往前推一天,就是2月的最后一天c.add(Calendar.DATE, -1);//获取这一天输出即可int date = c.get(Calendar.DATE);System.out.println(year + "年的2月份有" + date + "天");}
}
// 使用默认时区和语言环境获得一个日历Calendar cal = Calendar.getInstance();// 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1System.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));
今天是 2018 年 2 月 12 日,运行结果:
年:2018
月:2
日:12
时:15
分:57
秒:39
//获取当前时刻yyyy-MM-dd HH:mm:ssCalendar calendar = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式String now = sdf.format(calendar.getTime());System.out.println(now);
//获取上个月yyyy-MM
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
String lastMonth = new SimpleDateFormat("yyyy-MM").format(calendar.getTime());
System.out.println(lastMonth);
//获取昨天yyyy-MM-dd
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
String yesterday = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
System.out.println(yesterday);