我们知道Date和Calendar都是表示时间的,那么要选用哪个合适呢?
- 一般用途,表示当前日期,就用Date即可,配合SimpleDateFormat
- 如果涉及到对日期进行运算,就用Calendar
Date类型的大家都已经很熟悉了,今天主要是研究Calendar类型
首先应该创建一个Calendar对象
并且可以对时间进行运算。
Calendar cal = Calendar.getInstance();
然后就可以根据cal来直接获取当前时间的年、月、日、时、分、秒、毫秒等
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH ));
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 ));
System.out.println(cal.get(Calendar.MILLISECOND ));
比如说要求随意输入一个年份,求这年的二月份有多少天:
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:格式是:yyyy");
int year = scanner.nextInt();
scanner.close();
Calendar c = Calendar.getInstance();
c.set(year,2, 1);
System.out.println(c.get(Calendar.YEAR));
c.add(Calendar.DATE, -1);
System.out.println(year+"年的二月有"+(c.get(Calendar.DATE))+"天");
}
利用Calendar接口里面的set方法,给 对象 c 赋值,year是输入的年份,月份赋值为2,日赋值为1,
然后进行运算,通过add()方法,对
Calendar.DATE进行运算,减1,在赋值的时候我们赋值为2月1日,当日期减一后,自然就成了这个月的最后一天是几号,
就像如果赋值为3月31号,日期加一,就成为了3月1号一样。