Date类
类 Date 表示特定的瞬间,精确到毫秒。
需要注意的是 ,一个月由0到11的整数表示; 0是1月,1是2月等等
构造方法
public Date()
分配一个 Date对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。
public Date(long date)
分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。
public class Demo {
public static void main(String[] args) {
//创建一个Date对象,表示当前时间
Date date1=new Date();
System.out.println(date1);
//创建一个Date对象,表示从1970年1月1日00:00:00 GMT起的指定毫秒数。
Date date2=new Date(1000*60*60*24);
System.out.println(date2);
}
}
/*
运行结果:
Sun Jan 12 18:55:22 CST 2020
Fri Jan 02 08:00:00 CST 1970
*/
方法
public long getTime()
返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数 。
public void setTime(long time)
设置此 Date对象以表示1970年1月1日00:00:00 GMT后的time毫秒的时间点。
public class Demo {
public static void main(String[] args) {
Date date1=new Date();
long time=date1.getTime();
System.out.println(time);
Date date2=new Date();
//给计算机元年增加毫秒值
date2.setTime(1000*60*60*24);
System.out.println(date2);
}
}
/*
运行结果:
1578826772098
Fri Jan 02 08:00:00 CST 1970
*/
SimpleDateFormat类
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
构造方法
public SimpleDateFormat()
构造一个 SimpleDateFormat使用默认模式和日期格式符号为默认的 FORMAT区域设置。
SimpleDateFormat(String pattern)
使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。
public class Demo4 {
public static void main(String[] args) throws ParseException {
//指定日期显示的格式
Date date=new Date();
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
//按照默认格式对日期进行格式化
String format1=simpleDateFormat1.format(date);
System.out.println(format1);
//在初始化时指定格式
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年M月d日 HH:mm:ss");
//将日期按照格式格式化为一个字符串
String format2=simpleDateFormat2.format(date);
System.out.println(format2);
}
}
/*
运行结果:
20-1-12 下午7:04
2020年1月12日 19:04:33
*/
在Java帮助文档中,给了我们关于格式的规则,我们可以通过查阅文档来显示我们想要的格式
方法
public String format(Date date)
把一个日期对象格式化成一个字符串
在上述内容中已经使用过
public Date parse(String dateStr)
把一个日期字符串解析成一个日期对象 注意要以指定格式解析
public class Demo4 {
public static void main(String[] args) throws ParseException {
String dateStr="2020-01-11 10:00:00";
//注意格式要对应字符串,否则会报错
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//把一个日期字符串解析成一个日期对象
Date date = simpleDateFormat.parse(dateStr);
System.out.println(date);
}
}
/*
运行结果:
Sat Jan 11 10:00:00 CST020
*/
Calendar类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
方法
因为Calendar类是一个抽象类,所以我们要使用方法获取Calendar类的对象
public static Calendar getInstance()
使用默认时区和语言环境获得一个日历。
public int get(int field)
返回给定日历字段的值。
public abstract void add(int field,int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
public final void set(int year,int month,int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
set方法还有很多重载方法,可查询文档获得。
public class Demo {
public static void main(String[] args) {
Calendar instance=Calendar.getInstance();
/*
如果我们输出instance怎会得知它是GregorianCalendar类的对象,该类是Calendar的子类
所以getInstance方式实际上返回的是GregorianCalendar类的对象
*/
//field是Calendar类中的字段,具体可查询帮助文档
int year=instance.get(Calendar.YEAR);
System.out.println(year);
int month = instance.get(Calendar.MONTH);
System.out.println(month);
Calendar instance1=Calendar.getInstance();
instance1.add(Calendar.YEAR,-1);
int year1 = instance1.get(Calendar.YEAR);
System.out.println(year1);
Calendar instacne2=Calendar.getInstance();
instacne2.set(2021,6,5);
int day=instacne2.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
}
/*
运行结果:
2020
0
2019
5
*/