Date日期类
1.介绍
1.类Date表示特定的瞬间,精确到毫秒
2.1000毫秒=1秒
3.时间原点:1970年1月1日 0时0分0秒(我国北京时间是东八区的时间,比时间原点差8个小时)
2.Date类的使用
Date() //分配Date对象并初始化此对象,以表示分配它的时间
Date(long Time)//分配Date对象并初始化此对象,从时间原点开始算,传递毫秒值
public class Demo02_DateUse {
public static void main(String[] args) {
//Date()
Date date = new Date();
System.out.println("date = " + date);
//Date(long Time)
Date date1 = new Date(10000000L);
System.out.println("date1 = " + date1);
}
}
3.Date类的常用方法
long getTime()//获取当前系统时间毫秒值
void setTime(long Time)//设置时间,传递毫秒值,从时间原点开始计算
public class Demo03_DateBaseUse {
public static void main(String[] args) {
//long getTime()
Date date = new Date();
long dateTime = date.getTime();
System.out.println(dateTime);
//void setTime(long Time)
date.setTime(100000000L);
System.out.println(date);
}
}
Calendar日历类
1.介绍
1.日历类是一个抽象类
2.获取:
static Calendar getInstance()
3.月份问题:
国外: 0 1 2 3 4 5 6 7 8 9 10 11
国内: 1 2 3 4 5 6 7 8 9 10 11 12
2.常用方法
int get(int field) //返回给定日历字段的值
void set(int field, int value) //将给定的日历字段设置为指定的值
void add(int field, int amount) //根据日历的规则,为给定的日历字段添加或者减去指定的时间量
Date getTime()//将Calendar转成Date对象
field:代表的是日历字段-> 年 月 日 星期等,都是静态的
字段值 | |
---|---|
YEAR | 年 |
MONTH | 月(从0开始,可以+1使用) |
DAY_OF_MONTH | 月中的天(几号) |
HOUR | 时(12小时) |
HOUR_OF_DAY | 时(24小时) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 周中的天(周几,周日为1,可以-1使用) |
public class Demo04_Calendarr {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//int get(int field) 返回给定日历字段的值
int year = calendar.get(Calendar.YEAR);
System.out.println("year = " + year);
//void set(int field, int value) 将给定的日历字段设置为指定的值
calendar.set(Calendar.MONTH,7);
System.out.println(calendar.get(calendar.MONTH));
//void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或者减去指定的时间量
calendar.add(calendar.YEAR,-1);
System.out.println(calendar.get(calendar.YEAR));
//Date getTime()将Calendar转成Date对象
Date date = calendar.getTime();
System.out.println(date);
}
}
3.拓展方法
void set(int year, int month, int date) //直接设置年月日
public class Demo05CalenderAdd {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2025,1,1);
System.out.println(calendar.get(calendar.YEAR));
System.out.println(calendar.get(calendar.MONTH));
System.out.println(calendar.get(calendar.DAY_OF_MONTH));
}
}
练习:键盘录入一个年份,判断这一年是闰年,还是平年
public class Demo01 {
//键盘录入一个年份,判断这一年是闰年,还是平年
public static void main(String[] args) {
//1.创建Scanner对象,调用nextInt方法,录入一个年份 year
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
//2.获取Calendar对象
Calendar calendar = Calendar.getInstance();
//调用set方法,设置年月日
//set(year,2,1) -> 设置2月1日相当于3月1日,因为外国是从0开始
calendar.set(year,2,1);
//4.将1日往前-1天就变成了2月的最后一天
calendar.add(calendar.DATE,-1);
//5.获取day的字段,比较是否为28,如果是28为平年
if(calendar.get(calendar.DATE)==28){
System.out.println("该年是平年");
}else{
System.out.println("该年是闰年");
}
}