Date类

该类是一个与日期和时间有关的工具,在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;
}

 

posted @ 2020-10-16 19:55  素色学习  阅读(137)  评论(0编辑  收藏  举报