该类是一个与日期和时间有关的工具,在java.util包下
该类的一些注意事项: 1.所表示的时间精确到毫秒(1/1000秒);
2.有一个时间原点(0毫秒):1970年1月1日00:00:00
(英国格林时间,北京时间会自动加上八小时)
两个构造方法
1.无参构造:Date(),可以获取当前系统的日期和时间;
2.带参构造:Date(long date),参数为一个毫秒值,把毫秒值转化为date日期和时间 格式;
一个常用方法:
long getTime();把日期转化为毫秒值。
public static void main(String[] args) throws ParseException{ Date date = new Date(); System.out.println(date); //无参构造获取当前系统的时间和日期 //Date(long date)带参构造 Date date2 = new Date(0L); System.out.println(date2); //传递毫秒值把毫秒值转化为日期 //long getTime() 常用方法,把调用该方法的日期转化为毫秒值 long d = date.getTime(); System.out.println(d); }
DateFormat类
(该类是一个抽象类,可以使用其子类(SimpleDateFormat java.text包下)创建对象)
该类可以把日期和时间按某一格式进行解析,常用的两个
成员方法:
1.String format (Date date )
按照指定模式把Date日期格式化为符合模式的字符串
2.Date parse (String s )
把符合模式的字符串解析为Date日期
子类构造方法:
SimpleDateFormat(String pattern)
用给定模式和默认的语言环境
参数用来设定指定模
(
y--年,M--月,d--日,H--时,s--秒,m--分,S--毫秒 ,E--星期几
设定格式
eg:yyyy-MM-dd
符合格式的一个字符串“2020-10-16 ”
)
public static void main(String[] args) throws ParseException { //SimpleDateFormat(String pattern)带参构造,参数为指定格式 SimpleDateFormat sdate =new SimpleDateFormat("yyyy-MM-dd E"); Date date = new Date(); System.out.println(date); String format = sdate.format(date); System.out.println(format); date = sdate.parse("2020-10-11 星期日"); System.out.println(date); //如果参数格式与预定格式不符则会出现异常ParseException(解析异常) //需要处理这个异常,目前所有的方法是抛出这个异常(throws ParseException)(main方法所在行) } }
求一个人出生了多长时间
public static long birthdaytime() throws ParseException { System.out.println("请输入出生日期,格式为****年**月**日"); Scanner sc = new Scanner(System.in); String birtime = sc.next(); SimpleDateFormat simple = new SimpleDateFormat("yyyy年MM月dd日"); Date date = new Date(); long long2=date.getTime(); date = simple.parse(birtime); long long1 = date.getTime(); long longtime = long2-long1; long day= longtime/(24*60*60*1000); return day; }