DateFormat

DateFormat是日期/时间格式化子类的’抽象类’
作用:
格式化(日期——>文本)、解析(文本——>日期)Date
成员方法:
1.String format(Date date):按照指定模式,把Date日期,格式化为符合模式的字符串
2.Date parse (String source):把符合模式的字符串,解析为Date日期
DateFormat是一个抽象类,无法创建对象使用,可以使用其子类SimpleDateFormat
SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern):使用给定模式并使用默认语言环境的日期格式符号的构造方法
参数:
String pattern:传递指定的模式
模式:(模式中的字母不能更改,连接符号可以改变)
区分大小写 eg: “yyyy-MM-dd” //年月日 “HH:mm:ss” //时分秒


笔记

private static void demo() throws ParseException {

        //1.String format(Date date):按照指定模式,把Date日期,格式化为符合模式的字符串
        //创建SimpleDateFormat对象,在构造方法中传递指定的模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");
        Date date01 = new Date();
        //调用SimpleDateFormat对象中的方法format
        String timeText = sdf.format(date01);
        System.out.println("格式化之后的文本:" + timeText);
        System.out.println("一般的Date格式:" + date01);



        //2.Date parse (String source):把符合模式的字符串,解析为Date日期
        /*
        -----public Date parse(String source) throws ParseException-----
        parse方法声明了一个异常叫ParseException(解析异常)
        如果字符串和构造方法中的模式不一样,那么程序会抛出该异常,
        调用一个抛出异常的方法,就必须处理异常,要么throws抛出异常,要么try-catch自己处理异常
        */
        Date date02 = sdf.parse("2021年03月29日 10点30分11秒");
        //Date date02 = sdf.parse("2021年03月29日 10点30分11");      //模式不一样,抛出解析异常
        System.out.println("解析后的日期:" + date02);


    }

    public static void main(String[] args) throws ParseException {
        demo();
    }

运行结果:
在这里插入图片描述

自己的测试练习

计算自己从出生到现在活了多少天
分析:
1.Scanner输出日期
2.DateFormat类的parse方法,把输入的字符串解析为Date格式
3.把Date格式的日期转换为毫秒值
4.获取当前日期,转换为毫秒值
5.当前毫秒值减去生日毫秒值
6.把毫秒值的差值转换为天(s/1000/60/60/24)

public static void main(String[] args) throws ParseException {
        //1.Scanner输出日期
        Scanner sca = new Scanner(System.in);
        System.out.println("---欢迎使用‘被自己消耗的时间’计算器---");
        System.out.println("本计算器用于计算你在这个世界上呼吸的天数");
        System.out.println("请输入的你生日:(格式为:年.月.日)");
        String birthdayDateS =  sca.next();
        //2.DateFormat类的parse方法,把输入的字符串解析为Date格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
        Date birthdayDate = sdf.parse(birthdayDateS);
        //3.把Date格式的日期转换为毫秒值
        long birthdayTime = birthdayDate.getTime();
        //4.获取当前日期,转换为毫秒值
        long todayTime = new Date().getTime();
        //5.当前毫秒值减去生日毫秒值
        long time = todayTime - birthdayTime;
        //6.把毫秒值的差值转换为天(s/1000/60/60/24)
        System.out.println("从你出生到现在,你呼吸了"+time/1000/60/60/24+"天了,时间是不是过的很快?");
        System.out.println("温馨意识: 若某天你感觉呼吸困难,请先前往医院进行核酸检测再申请办理入院大礼包哦!");

运行结果:

在这里插入图片描述


总结

日期的运用要注意时区,如果涉及到计算要先把时间转换为毫秒来进行计算。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值