Date类
Java中的时间是用一个固定时间点的毫秒数表示
纪元(epoch):1970年1月1日 00:00:00
1 .构造方法
Date对象封装了当前时间
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//打印当前时间 //Sat Dec 25 19:18:01 CST 2021
Date date1 = new Date(1000); System.out.println(date1); //Thu Jan 01 08:00:01 CST 1970
}
2.setTime和getTime
public static void main(String[] args) {
Date date = new Date();
date.setTime(1000 - (8*60*60*1000));
System.out.println(date);
System.out.println(date.getTime()); //案例-打印明天的当前时间
Date date1 = new Date();
long time = date1.getTime();//获取当前毫秒数
time += 24*60*60*1000; date1.setTime(time);
System.out.println(date1);
}
2.SimpleDateFormat类
格式化和解析日期的类,可以对时间格式化或规范化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss E");
常用方法
public static void main(String[] args) throws ParseException {
//format 格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss E");
Date date = new Date();
String s = sdf.format(date);
System.out.println(s);//2021-12-25 19:48:11
//解析
String s1 = "2021.5.12";
//参数的字符串格式必须匹配s1的规则
//如果不匹配则会抛出praseException -- 解析异常
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MM.dd");
Date date1 = sdf1.parse(s1);
System.out.println(date1);//Wed May 12 00:00:00 CST 2021
}
Calender类
Calender:抽象类,用于时间分量的计算。
GregorianCalendar: 是抽象类Calendar的子类
1.构造方法
GregorianCalendar提供了重载的构造方法
2.计算日期分量
Calendar中提供了很多静态常量,用来描述时间分量
public static void main(String[] args) {
//获取时间分量
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);//12月
calendar.set(Calendar.DATE,20);
System.out.println("时间为:" + calendar.getTime());
//1 一周中的星期几
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);//一周中的第几天
System.out.println(dayOfWeek);//4 星期三
//2 一年的第几天
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(dayOfYear);//20
//3.一月中第几周
int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
System.out.println(weekOfMonth);//4
//4. 当前月中的第几个星期。
int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
System.out.println(dayOfWeekInMonth);//3
}
3.常用方法
set(int fields,int amount):设置时间分量
get(int fields,int amount):获取时间分量
getActualMaximum(int fields):返回日历字段可能拥有的最大值
add(int fields,int amount):为指定时间分量加上指定的值。