Date类
表示特定的时间精确到毫秒
1000毫秒=1秒
时间原点:格林威治时间1970年1月1日,0时0分0秒,这是UNIX系统的起始时间
北京时间的时间原点是1970年8点,时区为东八区
构造
public date() 无参构造,获取当前系统时间
public date(long time) 传递毫秒值,获取指定时间,从时间原点算起
方法
void setTime(long time) 设置时间 传递毫秒值
long getTime() 获取时间,返回毫秒值
直接输出对象就是具体时间不是毫秒值
public static void main(String[] args) {
//输出Date对象,getTime方法,setTime方法
Date d =new Date();
long d2 = d.getTime();
System.out.println(d);
d.setTime(1725543670477L);
System.out.println(d2);
System.out.println(d);
}
Calendar抽象类
抽象类不能new,我们利用Calendar类中的静态方法
static Calendar getInstance()
格式
Calendar calendar = Calendar.getInstance();
国外月份从零开始,所以我们获取的月份加1是中国月份
国外周日是第一天
YEAR:年份
MONTH:月份(注意:月份是从0开始的,所以0代表1月,11代表12月)
DATE(或 DAY_OF_MONTH):一个月中的日期
HOUR_OF_DAY:一天中的小时数(0-23)
HOUR:小时数(1-12),这取决于 Calendar 的 AM/PM 标记MINUTE:分钟
SECOND:秒
DAY_OF_WEEK:一周中的天数(例如,在美国,周日是1,周一是2,依此类推,周六是7)
DAY_OF_YEAR:一年中的天数(从1开始)
WEEK_OF_YEAR:一年中的周数
WEEK_OF_MONTH:一个月中的周数
MILLISECOND:毫秒
以上字段都是静态的,直接用Calendar类名调用。
常用方法
int get(int field) 返回给定日历字段的值
void set(int field,int value) 将给定的日历字段设置为指定的值,可以直接传三个参数设置年月日,不用穿字段
void add(int field,int amount) 根据日立的规则,给指定日历字段添加或减去指定的时间量
Date getTime() 将Calendar转为Data对象返回,Calendar对象并不会变