Java之Date类

本文详细介绍了Java中的Date类,包括构造方法、标准基准时间、常用方法等,并探讨了DateFormat和SimpleDateFormat类在日期和时间格式化中的应用。通过实例展示了如何在Date对象与String对象之间进行转换,以及如何计算两个日期之间的差值。最后提供了一个代码练习,演示了如何从用户输入中获取日期并计算与当前日期的差值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Date类的概述:

        java.util.Date类,表示一个日期和时间,内部精确到毫秒

2.Date类中的构造方法:

        public Date():创建当前系统时间对应的日期对象
        public Date(long date):创建以标准基准时间为基准 指定偏移毫秒数,对应时间的日期对象

3.标准基准时间:

          0时区:1970年1月1日00:00:00 GMT   格林威治标准时间
          东8区:1970年1月1日08:00:00 CST   中国标准时间

// 创建当前系统时间对应的日期对象
Date date = new Date();
System.out.println(date);  //Mon Aug 16 20:00:14 CST 2021
// 创建以标准基准时间为基准的日期对象 指定偏移1000毫秒
Date date1 = new Date(1000);
System.out.println(date1); //Thu Jan 01 08:00:00 CST 1970

4.Date类常用方法:

1、  - public long getTime():获取当前日期对象距离标准基准时间的毫秒值
2、  - public void setTime(long time):设置当前日期对象距离标准基准时间的毫秒值,意味着改变了当前日期对象
3、  - public boolean after(Date when):测试此日期是否在指定日期之后
4、  - public boolean before(Date when):测试此日期是否在指定日期之前

// 创建当前系统时间对应的日期对象
Date date = new Date();
System.out.println(date);
// 创建以标准基准时间为基准的日期对象 指定偏移1000毫秒
Date date1 = new Date(1000);
System.out.println(date1);
// 获取当前日期对象 距离 标准基准时间的 毫秒值
System.out.println(date.getTime());
System.out.println(date1.getTime());
// 修改date1距离标准基准时间的毫秒值为2000
long time = date.getTime();
date.setTime(time+2000);
System.out.println(date);
long time1 = date1.getTime();
System.out.println(time1);
date1.setTime(time1+2000);
System.out.println(date1);
// 创建当前时间对应的日期对象
Date date2 = new Date();
System.out.println(date2.getTime());
System.out.println("date3表示的日期是否在date1之前:"+date2.before(date));
System.out.println("date3表示的日期是否在date1之后:"+date2.after(date));

5、DateFormat类

java.text.DateFormat类:是 日期/时间 格式化子类的 抽象类
作用:完成日期和文本之间的转换,也就是在Date对象和String对象之间来回进行转换
        - 格式化:按照指定格式,把Date对象转换为String对象
        - 解析:按照指定格式,把String对象转换为Date对象
特点:
        由于DateFormat时抽象类,无法创建对象,所以只能使用其子类SimpleDateFormat类

6、SimpleDateFormat类:

java.text.SimpleDateFormat类:是日期/时间格式化的类
作用:可以在Date对象与String对象之间来回进行切换
构造方法:
        public SimpleDateFormat(String pattern):创建日期格式化对象,并且通过参数指定日期格式
日期格式:
        y --> 年 year
        M --> 月 mouth
        d --> 日 day
        H --> 时 hour
        m --> 分 minute
        s --> 秒 second
常见的日期格式:
        - yyyy年MM月dd日 HH时mm分ss秒
        - yyyy-MM-dd HH:mm:ss
        - yyyy-MM-dd
        - HH:mm:ss
成员方法:
        - public String format(Date date):将Date对象格式化为字符串对象
        - public Date parse(String source):将字符串解析为Date对象

 // 需求:把Date类型的对象转换为String类型
 // 1.创建当前日期对象
Date date = new Date();
// 2.创建日期格式化对象,并且指定日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");
String strtime = sdf.format(date);
System.out.println(strtime);
 // 需求:把String类型的对象转换成Date类型
 String str = "20201217125828";
 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddhhmmss");
 Date date1 = sdf1.parse(str);
 System.out.println(date1);
 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");
 String string1 = sdf2.format(date1);
 System.out.println(string1);

7.代码练习实例:

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

public class Tests {
    public static void main(String[] args) throws ParseException {
        /*
        * 需求:键盘录入一个字符串类型的时间(你的生日),打印你来到世界多少天?
        *
        * */
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你的生日:");
        String str = scanner.next();
        //现在的时间
        Date date = new Date();

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
        //解析传入的时间
        Date parse = sdf1.parse(str);
        //获取现在时间的毫秒值
        long time = date.getTime();
        //获取传进来时间的毫秒值
        long time1 = parse.getTime();
        //现在的时间-输入进来的时间
        long  t = time - time1;
        //把毫秒值转换为天
        int d = (int) (t/1000/60/60/24);
        System.out.println(d);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值