抽象类DateFormat

DateFormat类简介,

DateFormat是一个抽象类,不能直接使用,所以需要常用的子类`java.text.SimpleDateFormat`。这个类需要一个模式(格式)来指定格式化或解析的标准。他的主要作用就是允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化、。

注意

  • 因为他是个抽象类,所以无法直接使用,必须使用实现它的子类。
  • java.text.SimpleDateFormat extends DateFormat

构造方法:

  • public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
  • Y 年

    M 月

    d 日

    H 时

    m 分

    ss 秒

    写对应的模式,会把模式替换为对应的格式:yyyy --MM --dd HH:mm:ss

    注意:模式中的字母是不能修改的,连接符可以

常用方法

DateFormat类的常用方法有:

  • public String format(Date date):  将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DetaFormatTest {
    public static void main(String[] args) throws ParseException {
        demo1();
        demo2();

    }

    private static void demo2() throws ParseException {
        // 创建对象,构造方法指定模式
        SimpleDateFormat data = new SimpleDateFormat("yyyy年MM月dd日HH小时:mm分ss秒");
        // 按照指定模式解析成data对象,模式错误会报错
        Date time = data.parse("2015年12月2日2小时:22分23秒");

        System.out.println(time);//Wed Dec 02 02:22:23 CST 2015
        System.out.println(time.getTime());//1448994143000 转化毫秒值

    }

    private static void demo1() {
        // 创建对象,构造方法指定模式
        SimpleDateFormat data = new SimpleDateFormat("yyyy年MM月dd日HH小时:mm分ss秒");
        // 获取Date对象
        Date time = new Date();
        // format方法把指定模式输出
        System.out.println("现在的时间是" + data.format(time));//现在的时间是2019年03月13日22小时:23分45秒
    }
}

需求:获取一个人活了多少天

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 {
        // 获取他的生日是多少next()方法
        Scanner s = new Scanner(System.in);
        System.out.println("请输入您的生日,格式yyyy年MM月DD日");
        // 获取客户生日
        String birthday = s.next();
        // 解析按指定的模式解析成Data对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月DD日");
        // 解析指定模式的字符串,变成Date 对象
        Date date = sdf.parse(birthday);
        //System.out.println(date);
        // data对象转化为毫秒值
         long start = date.getTime();
        //获取当前时间的毫秒值
        long end = new Date().getTime();
        //获取活了多少天
        long time = (end-start);
        System.out.println("你已经活了这么多天了" +time/1000/60/60/24);

    }
}

猜你喜欢

转载自www.cnblogs.com/wurengen/p/10631177.html