日期常用类库
1. Date
Date类表示特定的时刻,精度为毫秒。
构造
Date date = new Date();
System.out.println(date.toString());
//Thu Jun 10 16:05:48 BST 2021
long time = 1623007548460;
Date date2 = new Date(time);//分配Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数
public long getTime()
- 功能:返回此Date对象表示的自1970年1月1日00:00:00 GMT以来的毫秒数。
Date date = new Date();
System.out.println(date.getTime());
//1623337548460
long time = date.getTime()-(24*60*60*1000);//减去1天的毫秒数
Date date2 = new Date(time);
System.out.println(date2.toString());
//Wed Jun 09 16:05:48 BST 2021
2. DateFormat
使用子类SimpleDateFormat规定日期格式
/**
* y : 年
* M : 月
* d : 日
* H : 时
* m : 分
* s : 秒
*
* 2020年12月12日 12:12:50
*/
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2021年06月10日 16:27:13
String text = format.format(new Date());
System.out.println(text);
将 format规定的 日期字符串,转换位date对象
Date date = format.parse("2021年12月12日 12:12:12");
System.out.println(date.getTime());
//1639311132000
System.out.println(new Date().getTime()-date.getTime());
//-15972298957
3. Calendar
使用
Calendar cl = Calendar.getInstance();
set : 设置时间
cl.set(Calendar.YEAR, 2021);
get : 获取时间
int year = cl.get(Calendar.YEAR);
int day = cl.get(Calendar.DAY_OF_MONTH);
System.out.println(year);
//2021
System.out.println(day);
//10
add : 修改时间
cl.add(Calendar.MONTH, 10);
cl.add(Calendar.YEAR, -2);
System.out.println(cl.get(Calendar.MONTH));
//java月份为0~11, 实际月份为输出月份+1
getTime : 获取日历时间表示的Date对象
Date d = cl.getTime();
getActualMaximum : 获取某字段的最大值
cl.set(Calendar.MONTH, 1);
//设置为2月
int m = c1.getActualMaximum(Calendar.MONTH);
int n = c1.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(m);
//11
System.out.println(n);
//1