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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值