方法名 | 说明 |
---|---|
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开始,所以取月份要+1
System.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:ss Calendar 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);