Java- 日期时间类-Date类

在这里插入图片描述

package lesson2;
/*
    java.util.Date:表示日期和时间的类
    类 Date表示特定的瞬间,精确到毫秒
    毫秒:千分之一秒 1000毫秒 = 1秒
     特定的瞬间:一个时间点

     毫秒值的作用:可以对时间和日期进行计算
     2099-01-03 到 2088-01-31中间一共多少天:
     可以把日期转换为毫秒,计算完毕,再把毫秒转换为日期

     把日期转换为毫秒:
     当前日期
     时间原点(0毫秒):1970年1月1日  00:00:00(英国格林威治)
     就是计算当前日期到时间原点之间一共经历了多少毫秒 (1599445239109L)

     注意:
     中国属于东八区,会把时间增加8个小时
     1970年1月1日  00:08:00

     把毫秒转换成日期:
        1天 = 24 * 60 * 60 =86400 秒 = 86400*1000=86400 000 毫秒
 */

public class Demo01Date {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());//获取当前系统时间一共到1970年1月1日  00:00:00经历了多少毫秒
    }
}


package lesson2;

import java.util.Date;

public class Demo02Date {
    public static void main(String[] args) {
        //demo01();
        //demo02();
        demo03();
    }

    /*
        Long getTime() 把日期转换为毫秒值(相当于System.currentTimeMillis()方法)
            返回自1970年1月1日00:00:00 GMT 以来此Date对象表示的毫秒数
     */
    private static void demo03() {
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);
    }

    /*
        Date类的带参数构造方法
        Date(Long date):传递毫秒值,把毫秒值转化成Date日期
     */
    private static void demo02() {
        Date date = new Date(0L);
        System.out.println(date); //Thu Jan 01 08:00:00 CST 1970

        date = new Date(1599445239109L);
        System.out.println(date); //Mon Sep 07 10:20:39 CST 2020
    }

    /*
        Date类的空参构造方法
        Date() 获取当前系统的时间和日期
     */
    private static void demo01(){
        Date date = new Date();
        System.out.println(date);  //Mon Sep 07 10:30:07 CST 2020

    }
}

DateFormate类:
在这里插入图片描述

package lesson2;
/*
    java.text.DateFormat:是时间/日期格式化子类的抽象类
    作用:
        格式化:日期-->文本    解析:文本-->日期
    成员方法:
        String format(Date date)  按照指定的模式,把Date日期,格式化为符合模式的字符串
        Date parse(String source)  把符合模式的字符串解析为Date日期
    DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类

    java.text.SimpleDateFormat extends DateFormat

    构造方法:
        SimpleDateFormat(String pattern)
            用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat
        参数:
            String pattern :传递指定的模式
        模式:区分大小写的
            y    年
            M    月
            d    日
            H    时
            m    分
            s    秒
           写对应的模式,会把模式替换为对应的日期和时间
              "yyyy-MM-dd HH:mm;ss"
           注意:
                模式中的字母不能更改,连接模式的符号可以改
                "yyyy年MM月dd日 HH时mm分ss秒"

 */

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

public class Demo01DateFormat {
    public static void main(String[] args) throws ParseException {
        //demo01();
        demo02();
    }

    /*
        使用DateFormat类中的方法parse,把文本解析为日期
        使用步骤:
            1.创建SimpleDateFormat对象,构造方法中传入指定的模式
            2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
            注意:
            public Date parse(String source) throws ParseException
            parse方法声明了一个异常叫做 ParseException(解析异常)
            如果字符串和构造方法的解析模式不一样,那么程序就睡抛出此异常
            调用一个抛出异常的方法,就必须处理这个异常,要么throws继续排除这个异常,要么try catch自己处理
     */
    private static void demo02() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date date = sdf.parse("2020年09月07日 11时02分28秒");
        System.out.println(date);
    }

    /*
    使用DateFormat类中的方法format,把日期格式化为文本
    使用步骤:
        1.创建SimpleDateFormat对象,构造方法中传递指定的模式
        2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
     */
    private static void demo01() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date date = new Date();
        String d = sdf.format(date);
        System.out.println(date);//Mon Sep 07 11:02:28 CST 2020
        System.out.println(d);//2020年09月07日 11时02分28秒
    }
}

package lesson2;
/*
    练习:
        使用日期时间相关的API,计算一个人已经出生了多少天
    分析:
        1.使用Scanner类中的方法next,获取出生日期
        2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式
        3.把Date格式的出生日期转换为毫秒值,
        4.把当前日期叶转换为毫秒值
        5.使用当前日期毫秒值减去出生日期毫秒值
        6.把毫秒值的差值转换为天(s/1000/60/60/24)
 */

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

public class Demo02Text {
    public static void main(String[] args) throws ParseException {
        //1.使用Scanner类中的方法next,获取出生日期
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的出生日期,格式为yyyy-MM-dd");
        String birthdayDateString = sc.next();
        //2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdayDate = sdf.parse(birthdayDateString);
        //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+"天");
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值