时间API
Date类
- 创建一个Date类的对象
Date d=new Dtae();
获取时间对象
d.getTime();
System.currentTimeMillis(); //时间毫秒值
SimpleDateFormat(); //格式化这个日期对象
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss EEE a”);
//开始格式化日期对象成为喜欢的字符串形式
String rs=sdf.format(d);
rs.parse()//解析文本以字符串解析为时间
例题:
请计算2021年08月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少?
-
把字符串时间拿到程序中央
-
String datestr="2021年08月06日 11:11:11";
-
-
把字符串时间解析成日期对象(本节的重点):形式必须与被解析时间的形式完全一样,否则运行时解析报错!
-
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
-
Data d=sdf.parse(datastr);
-
-
往后走2天14小时49分06秒
-
long time =d.getTime()+(2L*24*60*60+49*60+6)*1000;
-
-
格式化这个时间毫秒值就是结果
-
System.out.printfln(sdf.format(time));
-
Calender 日历
-
拿到系统此刻日历对象
-
Calender cal=Calender.getInstance();
-
-
获取日历的信息,取日期中的某个字段信息
-
int year =cal.get(Calender.YEAR); int month=cal.get(Calender.MONTH)+1;
-
-
修改日历的信息
-
cal.set(calender.HOUR,12);
-
-
为某个字段增加/减少指定的值
-
//64天后是什么时间
-
cal.add(calender.DAY_OF_YEAR,64);
-
-
拿到此刻日期对象
-
Date d=cal.getTime();
-
-
拿到此刻时间毫秒值
-
long time=cal.getTimeInMills();
-
除此之外JDK8又新增日期类
LocalDate
:不包括具体时间的日期
LocalTime
:不包括日期的时间
LocalDateTime
:包含了日期及时间
Instant
:时间戳
DateTimeFormatter
:时间的格式化和解析
Duration
:计算两个时间间隔
Period
:计算两个日期间隔