天天看点

java date获取年月日_java常用的类---日历类

11、日历类

(一)Calendar类概述

1、Calendar类的概述

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

Calendar提供了一个类方法getlnstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化。

调用格式:Calendar rightNow=Calendar.getlnstance()

利用上述的方法实现获取当前日历:

程序如下:

package

afternoon;

import

java.util.Calendar;

public class

CalendarDemo {

public static void

main(String[] args){

//获取对象

Calendar c=Calendar.getInstance();

//System.out.print(c); //这一步是用于自己对于获取日历的类型

int

year=c.get(Calendar.

YEAR

);

int

month=c.get(Calendar.

MONTH

);

int

data=c.get(Calendar.

DATE

);

System.

out

.print(year+"年"+month+"月"+data+"日"); //打印当前的时间

}

}

Output result:

2020年9月21日

注:此处用Calendar的过程当中的月份从0开始的,其中0代表1月份
java date获取年月日_java常用的类---日历类
(二)Calendar的常用方法

(1)Public int get(int field) 返回给定的日历字段的值

(2)Public abstract void add(int filed,int month,int data) 返回当前日历的年月日.

调用Calendar的常用方法:

程序:

package

afternoon;

import

java.util.Calendar;

public class

CalendarDemo1 {

public static void

main(String[] args){

//获取对象

Calendar c=Calendar.getInstance();

//需求1:3年前的今天

c.add(Calendar.

YEAR

, -3);

//Public int get(int field) 返回给定的日历字段的值

int

year=c.get(Calendar.

YEAR

);

int

month=c.get(Calendar.

MONTH

)+1;

int

data=c.get(Calendar.

DATE

);

System.

out

.print(year+"年"+month+"月"+data+"日"); //打印3年前的今天

System.

out

.print("--------");

//需求2:15年后的5天前

c.add(Calendar.

YEAR

, 15);

c.add(Calendar.

DATE

, -5);

int

year2=c.get(Calendar.

YEAR

);

int

month2=c.get(Calendar.

MONTH

)+1;

int

data2=c.get(Calendar.

DATE

);

System.

out

.print(year2+"年"+month2+"月"+data2+"日"); //打印15年后的5天前

System.

out

.print("--------");

//public final void set(int year,int month,int data) 设置当前日历的年月日

c.set(2020, 10, 21);

int

year1=c.get(Calendar.

YEAR

);

int

month1=c.get(Calendar.

MONTH

);

int

data1=c.get(Calendar.

DATE

);

System.

out

.print(year1+"年"+month1+"月"+data1+"日"); //打印设置当前日历的年月日

}

}

Output result:

2017年10月21日--------2032年10月16日--------2020年10月21日

案列:二月天

package

afternoon;

import

java.util.Calendar;

import

java.util.Scanner;

public class

CalendarTest {

public static void

main(String[] args){

Scanner sc=

new

Scanner(System.

in

);

int

year=sc.nextInt();

System.

out

.print("请输入年份:");

//创建日历对象

Calendar c= Calendar.getInstance();

c.set(year, 2, 1);

//3月1日往前推一天,就是2月的最后一天

c.add(Calendar.

DATE

, -1);

//获取这一天,输出这一天即可。

//int year=c.get(Calendar.YEAR);

//int month=c.get(Calendar.MONTH)+1;

c.add(Calendar.

DATE

, -1);

int

data=c.get(Calendar.

DATE

);

System.

out

.print(year+"年的2月份有"+data+"天");

}

}

思考:对于采用日历类去计算任给一个月判断其为月大,还是月小??