Date类、SimpleDateFormat类

Date

构造方法:

1、无参数构造方法:

Date date = new Date();
System.out.println(date);// Thu Mar 28 16:28:40 CST 2019,重写了toString方法,打印系统的当前时间
```、

2、有参数的构造方法:参数为long类型

Date date2 = new Date(73298479832L);
System.out.println(date2);// Fri Apr 28 16:41:19 CST 1972,这是参数对应的时间


###成员方法:
1、
long getTime():把系统当前时间转化为毫秒值,相当于System.currentTimeMillis()


##SimpleDateFormat
###DateFormat类是一个抽象类
java.text.DateFormat:是日期/时间格式化子类的抽象类
作用:
格式化(也就是日期 -> 文本)、解析(文本->日期)
成员方法:
    String format(Date date):按照指定的格式把Date日期格式化为符合模式的字符串
    Date parse(String source):把符合模式的字符串解析为Date日期

DateFormat是一个抽象类,无法直接创建对象,可以使用他的子类```java.text.SimpleDateFormat```创建对象
java.text.SimpleDateFormat extends Date
该类的构造方法:

SimpleDateFormat(String pattern)
// pattern是指定的模式
// 写对应的模式,会把模式替换为对应的格式的日期,年月日时分秒这些字母不能变化,但是连接符号可以变化,比如:
pattern1 = “yyyy-MM-dd HH:mm:ss";
pattern2 = "yyyy年MM月dd日 HH时mm分ss秒”;

####使用DateFormat类中的format方法把日期格式转为文本:
1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
2、调用SimpleDateFormat对象的方法format,按照构造方法中的指定模式,将日期转化为字符串(文本)

// 1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
// 2、调用SimpleDateFormat对象的方法format,按照构造方法中的指定模式,将日期转化为字符串(文本)
Date date = new Date();
String d = sdf.format(date);

    System.out.println(date);// Thu Mar 28 19:57:38 CST 2019
    System.out.println(d);// 2019年03月28日 19时57分38秒

####使用DateFormat类中的parse方法,把文本解析为日期
使用步骤:
1、创建SimpleDateFormat对象,并且在构造方法中传递指定的模式字符串
2、调用SimpleDateFormat对象的方法parse,把符合构造方法中的模式的字符串解析为日期
注意:
    parse方法声明了一个异常叫ParseException,如果字符串和构造方法的模式不一样,就会抛出这个异常调用一个抛出异常的方法有两种处理方式,要么throw继续抛出这个异常,要么就try catch自己自己处理这个异常

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");// 构造方法里的模式串

Date date = sdf.parse("2019年03月28日 19时57分38秒");// 这个模式串要和构造方法的模式串一样(否则就有异常),返回的是一个Date对象
System.out.println(date);// Thu Mar 28 19:57:38 CST 2019

问题:一个人活了多少天了?
步骤:
计算一个人出生了多少天了
1.Scanner输入出生日期
2.使用DateFormat的parse方法把字符串转为Date对象
3、把这个对象转化为毫秒值
4、获取当前的毫秒值
5、二者相减
6、差值转为天

public class Practise {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your birthday with format : yyyy-mm-dd");
String date = sc.next();

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date birthday = sdf.parse(date);

    long birthTime = birthday.getTime();
    long todayTime = new Date().getTime();

    long dis = todayTime - birthTime;

    System.out.println(dis/1000/60/60/24);
}

}


Enter your birthday with format : yyyy-mm-dd
1995-03-06
8788

原文地址:https://www.cnblogs.com/zhuobo/p/10617134.html