Java时间日期处理:Java Date类、Calendar类应用

本文详细介绍了Java中的Date、DateFormat和Calendar类,包括它们的构造方法、getTime方法、以及日期时间的格式化和计算。重点讲解了如何使用这些类处理精确到毫秒的日期和执行时间操作。
摘要由CSDN通过智能技术生成

目录

1 Date类

1.1 概述

1.2 Date类构造方法

1.3 Date类的getTime方法:返回毫秒数

2 DateFormat类

2.1SimpleDateFormat的构造方法(parse方法、format方法)

3 Calendar类

3.1 概念

3.2 获取方式

3.3 常用方法

3.3.1 get/set方法

3.3.2 add方法

3.3.3 getTime方法:返回对应的Date对象


 

 

1 Date类

1.1 概述

`java.util.Date`类表示特定的瞬间,精确到毫秒。它有一个构造函数接受一个`long`型参数,该参数表示从1970年1月1日00:00:00 GMT起的毫秒数,用来创建一个对应的`Date`对象。例如,`Date date = new Date(1617648000000L);`会创建一个代表2021年4月6日00:00:00的`Date`对象。

1.2 Date类构造方法

  1. public Date():创建Date对象并初始化此对象,(精确到毫秒)。
  2. public Date(long date):创建Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”。

我们的基准时间为1970年1月1日8时0分0秒

    @Test
    void DateTest(){
        //创建日期对象,获取当前时间
        Date currentDate = new Date();
        System.out.println(currentDate); //Fri Apr 19 15:40:57 CST 2024

        //创建日期对象,把毫秒值转换成日期对象
        Date date = new Date(1L);
        System.out.println(date); //Thu Jan 01 08:00:00 CST 1970
    }

 

1.3 Date类的getTime方法:返回毫秒数

`getTime()`方法是`java.util.Date`类中的一个方法,用于获取表示该`Date`对象的时间的毫秒数。例如,如果有一个`Date`对象`date`,可以通过`long timeInMillis = date.getTime();`来获取该对象表示的时间的毫秒数。

 

public class Main {
    public static void main(String[] args) {
        // 创建一个Date对象,表示2021年4月6日00:00:00
        Date date = new Date(1617648000000L);

        // 获取该Date对象表示的时间的毫秒数
        long timeInMillis = date.getTime();

        // 输出时间的毫秒数
        System.out.println("时间的毫秒数:" + timeInMillis);
    }
}

2 DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

public static void main(String[] args) {
        // 创建一个Date对象,表示当前时间
        Date date = new Date();

        // 创建一个SimpleDateFormat对象,指定日期时间格式
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        // 使用DateFormat对象格式化Date对象
        String formattedDate = dateFormat.format(date);

        // 输出格式化后的日期时间字符串
        System.out.println("当前时间:" + formattedDate);
    }

 

2.1SimpleDateFormat的构造方法(parse方法、format方法)

    @Test
    void DateTest01(){
        Date date = new Date();

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String format = dateFormat.format(date);
        System.out.println(format);  //2024-04-19

        String dataString = "2024-04-19";
        try {
            Date parse = dateFormat.parse(dataString);
            System.out.println(parse); //Fri Apr 19 00:00:00 CST 2024
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

3 Calendar类

3.1 概念

 

java.util.Calendar是Java中用于处理日期和时间的抽象类。它提供了一种在特定日历系统中对日期和时间进行操作的方式,独立于使用的特定时区。Calendar类允许你执行许多操作,如获取日期的年、月、日、时、分、秒等字段的值,以及执行日期和时间的算术运算,比如添加或减去一定的时间量。使用Calendar类可以更灵活地处理日期和时间,而不受特定时区的限制。

3.2 获取方式

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

  • public static Calendar getInstance():使用默认时区和语言环境获得一个日历
import java.util.Calendar;

public class Demo06CalendarInit {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
    }    
}

 

3.3 常用方法

根据Calendar类的API文档,常用方法有:

  1. public int get(int field):返回给定日历字段的值。
  2. public void set(int field, int value):将给定的日历字段设置为给定值。
  3. public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  4. public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象、

a4219dceead14cf0862d30166b475815.png

3.3.1 get/set方法

import java.util.Calendar;
public class Demo {
    public static void main(String[] args) {
        // 创建Calendar对象
        Calendar cal = Calendar.getInstance();
        // 获取年 
        int year = cal.get(Calendar.YEAR);
        // 获取月
        int month = cal.get(Calendar.MONTH) + 1;
        // 获取日
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
        System.out.print(year + "年" + month + "月" + dayOfMonth + "日");
    }
}

3.3.2 add方法

import java.util.Calendar;

public class Demo08CalendarMethod {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        // 获取年
        int year = cal.get(Calendar.YEAR);
        // 获取月
        int month = cal.get(Calendar.MONTH) + 1;
        // 获取日
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + "年" + month + "月" + dayOfMonth + "日");
        // 使用add方法
        cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
        cal.add(Calendar.YEAR, -3); // 减3年
        // 获取年
        year = cal.get(Calendar.YEAR);
        // 获取月
        month = cal.get(Calendar.MONTH) + 1;
        // 获取日
        dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year + "年" + month + "月" + dayOfMonth + "日");
    }
}

3.3.3 getTime方法:返回对应的Date对象

 

import java.util.Calendar;
import java.util.Date;

public class Demo {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime();
        System.out.println(date); 
    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值