跟随狂神学Java-20,Calendar类

第二十天:Calendar类

吾日三省吾身:早上吃什么,中午吃什么,晚上吃什么

狂神未更新,转千锋教育 (bilibili.com)

学习内容

Calendar
  • Calendar提供了获取或设置各种日历字段的方法

  • 构造方法:

    • protected Calendar(): 由于修饰符是protected,所以无法直接创建对象

    • 构造方法摘要

      protected Calendar() 构造一个带有默认时区和语言环境的 Calendar。
      protected Calendar(TimeZone zone, Locale aLocale) 构造一个带有指定时区和语言环境的 Calendar。

获取时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.joker_yue.javalearn.CalendarLearn;

import java.util.Calendar;

public class Demo {
public static void main(String[] args) {
//1.创建Calendar对象
Calendar calendar = Calendar.getInstance();//获取当前时间
System.out.println(calendar.getTime());//输出当前时间
System.out.println(calendar.getTimeInMillis());//打印时间的毫秒值
//2.获取时间值(后面跟的都是参数)
//获取年
int year = calendar.get(Calendar.YEAR);//Calendar.YEAR==1
//获取月
int month = calendar.get(Calendar.MONTH);//Calendar.MONTH==2
//获取日
int day = calendar.get(Calendar.DAY_OF_MONTH);//Calendar.DAY_OF_MONTH==5
//获取小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);//Calendar.HOUR_OF_DAY==11
//获取分钟
int minute = calendar.get(Calendar.MINUTE);//Calendar.MINUTE==12
//获取秒
int second = calendar.get(Calendar.SECOND);//Calendar.SECOND==13
System.out.println(year+"年"+ month+1+"月"+day+"日"+hour+":"+minute+":"+second);
//不知道为啥,月份应当加一(难道老外从0月开始过?)

}
}

最后的输出结果为

1
2
3
Wed Sep 14 22:16:41 CST 2022
1663165001103
2022811422:16:41

修改时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.joker_yue.javalearn.CalendarLearn;

import java.util.Calendar;

public class Demo {
public static void main(String[] args) {
//1.创建Calendar对象
Calendar calendar = Calendar.getInstance();//获取当前时间
System.out.println(calendar.getTime());//输出当前时间
System.out.println(calendar.getTimeInMillis());//打印时间的毫秒值
//2.获取时间值(后面跟的都是参数)
//获取年
int year = calendar.get(Calendar.YEAR);//Calendar.YEAR==1
//获取月
int month = calendar.get(Calendar.MONTH);//Calendar.MONTH==2
//获取日
int day = calendar.get(Calendar.DAY_OF_MONTH);//Calendar.DAY_OF_MONTH==5
//获取小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);//Calendar.HOUR_OF_DAY==11
//获取分钟
int minute = calendar.get(Calendar.MINUTE);//Calendar.MINUTE==12
//获取秒
int second = calendar.get(Calendar.SECOND);//Calendar.SECOND==13
System.out.println(year+"年"+ (month+1)+"月"+day+"日"+hour+":"+minute+":"+second);
//不知道为啥,月份应当加一(难道老外从0月开始过?)


//3.修改时间
Calendar cal = calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH,6);//将月份修改为6月
System.out.println(cal.getTime() );

//4.add方法修改时间
cal.add(Calendar.HOUR,1);//在原有的时间(小时)上加上1,当然,你也可以输入负数来减去时间
System.out.println(cal.getTime());

//5.补充方法
int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH);//得到了这个月的最大天数
System.out.println(max);
int min = cal.getActualMinimum(Calendar.DAY_OF_MONTH);//得到了这个月的最小天数
System.out.println(min);
}
}

最后的输出结果为

1
2
3
4
5
6
7
Wed Sep 14 22:35:54 CST 2022
1663166154685
202291422:35:54
Tue Sep 06 22:35:54 CST 2022
Tue Sep 06 23:35:54 CST 2022
30
1