Date类

Date类介绍

java.util.Date:表示日期和时间的类 
Date 表示特定的瞬间,精确到毫秒
把日期转换为毫秒
    时间原点(0毫秒):1970.01.01 00:00:00
    当前日期到时间原点一共经历了多少
注意:
    中国属于东八区,会把时间增加8个小时
    所以0毫秒为1970.01.01 08:00:00
毫秒转换为日期
    1天 = 24*60*60=86400s = 86400*1000=86400000ms

构造方法

空参数构造方法

 Date() 获取当前系统的时间和日期
Date date = new Date();
System.out.println(date); // Wed May 19 11:13:05 CST 2021

带参数构造方法

Date(long date): 把毫秒值转换为Date日期
Date date = new Date(0L);
System.out.println(date); // Thu Jan 01 08:00:00 CST 1970

Date date2 = new Date(1621393772455L);
System.out.println(date2); // Wed May 19 11:09:32 CST 2021

常用方法

getTime()

日期转换为毫秒,返回long类型值
Date date = new Date();
long time = date.getTime();
System.out.println(time); // 1621394367306

DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,
作用:
    格式化 (日期->文本),解析(文本->日期)

SimpleDateFormat类

DateFormat类是一个抽象类,无法直接创建对象使用,可以使用它的子类
java.text.SimpleDateFormat extends DateFromat

构造方法

SimpleDateFormat(String pattern) 
    使用给定模式 SimpleDateFormat并使用默认的FORMAT语言环境的默认
    日期格式符号。 
    参数:
        String pattern:传递指定的模式
    模式:
        区分大小写
        y  年
        M  月
        d  日
        H  时
        m  分
        s  秒
    yyyy-MM-dd HH:mm:ss
    
    模式中的字母不能改,但连接符可以改
    yyyy年MM月dd日 HH时mm分ss秒

常用成员方法

format()

传入date类型数据,返回字符串,相当于格式化
使用DateFormat类中的方法format,把日期格式化为文本,
使用步骤:
        1.创建SimpleDateFormat对象,构造方法中传递指定的模式
        2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的
        模式,把Date日期格式化为符合模式的字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

Date date = new Date();
String d = sdf.format(date);
System.out.println(date); // Wed May 26 09:46:17 CST 2021
System.out.println(d); // 2021年05月26日 09时46分17秒

parse()

传入给定模式的字符串,返回Date类型数据
例: 传入:2021年05月26日 09时46分17秒
	 返回:Wed May 26 09:46:17 CST 2021
使用DateFormat类中的方法parse,把文本解析为日期
     使用步骤:
         1.创建SimpleDateFormat对象,构造方法中传递指定的模式
         2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式
           的字符串,解析为date日期
         注意:
            parse方法声明了一个异常
            如果字符串和构造方法的模式不一样,那么程序就会抛出异常,用
            throws抛出异常或者try case自己解决
public class Demo01DateFormat {
    public static void main(String[] args) throws ParseException {
        demo02();
        
    }

    private static void demo02() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date date = sdf.parse("2021年05月26日 09时46分17秒");
        System.out.println(date);
    }

练习

计算一个人从出生了多少天
package day01.demo03;

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

/*
    计算一个人出生了多少天
 */
public class Demo02test {
    public static void main(String[] args) throws ParseException {
        // 1.获取出生日期
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出生日期:格式yyyy-MM-dd");
        String birth = sc.next();

        // 2. 解析为Date格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        // 3. Date转换为毫秒
        Date da = sdf.parse(birth);
        long time1 = da.getTime();

        // 4. 获取当前日期转为毫秒
        Date date = new Date();
        long now = date.getTime();

        // 5. 当前日期-出生
        long time = now-time1;

        // 6.转换为Date格式(s/1000/60/60/24)
        System.out.println(time/1000/60/60/24);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rich_Z_b_f

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值