概述

java.text.DateFormat 是日期/时间格式化子类的抽象类,不能直接使用。我们通过这个类的子类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。一共有2个功能 格式化:按照指定的格式,从Date对象转换为String对象。或者解析:按照指定的格式,从String对象转换为Date对象。

构造方法:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。 

这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

  • public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。例如:yyyy-MM-dd HH:mm:ss" 会把模式替换为对应的日期和时间

注意:

  • 模式中的字母不能修改,连接符可以改变
  • 字母对应的具体意义详情如下

类SimpleDateFormat 随笔 第1张

 

常用方法:

  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。

 需求

计算一个人活了多少天

类SimpleDateFormat 随笔 第2张

 

 代码实现:

package demo02;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class PersonDate {
    public static void main(String[] args) throws ParseException {
        // 从键盘获取字符串
        Scanner scanner = new Scanner(System.in);
        System.out.println("请按照指定格式yyyy年MM月dd日输入你的生日");
        String next = scanner.next();
        //创建SimpleDateFormat类对象,传入指定模式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        //解析成为Date对象
        Date date = simpleDateFormat.parse(next);
        // 获取date对象,从时间原点到现在过去了多少毫秒
        long start = date.getTime();
        long end = new Date().getTime();
        long result = end - start;
        //活了多少天
        long day = result / (1000 * 60 * 60 * 24);
        System.out.println(day);


    }
}

执行结果

类SimpleDateFormat 随笔 第3张

 




扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄