一.Date类
java.util.Date,表示特定的瞬间,精确到毫秒。(1000hs=1s)
eg: 2021-08-30 02:10:34:445 精确到毫秒的瞬间。
可以对时间和日期进行计算。将日期转换为毫秒,计算完毕再将毫秒转换为日期。
日期->毫秒
当前日期:2021-08-30 02:10:34:
时间原点:1970-01-01 00:00:00 (英国格林威治时间)(0毫秒)
计算当前日期到时间原点经过了多少毫秒。
注意: 中国属于东八区,时间增加8小时。1970-01-01 08:00:00
构造方法
new Date();
new Date(long date); //传入毫秒值,转换为日期
常用方法
long getTime() //当前日期转换为毫秒,相当于System.currentTimeMillis()
String toLocalString(); //根据本地格式转换日期对象
Date类的toString()方法已被重写
二.DateFormat(抽象类)& 实现类 SimpleDateFormat
java.lang.Object → java.text.Format → java.text.DateFormat
格式化(日期—文本) 解析(文本—日期)
构造方法 SimpleDateFormat() //默认格式
SimpleDateFormat(String pattern) // y M d H m s
常用方法 :
format(格式化,继承自DateFormat):public final String format(Date date)
parse(解析):public Date parse(String text) throws PaseException
SimplementDateFormat类的toString()方法没有重写
练习:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//计算你已经出生了多少天
class dateTest{
public static void main(String[] args) {
System.out.print("请输入您的出生日期,按照yyyy-MM-dd格式:");
Scanner sc=new Scanner(System.in);
String next = sc.next();
countDay(next);
}
public static void countDay(String ss){
Date date=new Date();
SimpleDateFormat sdate=new SimpleDateFormat("yyyy-MM-dd");
try {
Date birth = sdate.parse(ss);
long a = date.getTime() - birth.getTime();
long day=a/1000/60/60/24;
System.out.println(day);
} catch (ParseException e) {
e.printStackTrace();
}
}
}