欢迎访问宙启技术站
智能推送

Java中的日期函数:Date和Calendar

发布时间:2023-06-20 20:17:16

Java中的日期类主要包括两种:Date和Calendar。这两种日期类的使用都非常简单,但是它们在实现上有很大的区别,具体来说,Date类是一个表示时间的毫秒数的包装器类,可以存储和操作时间和日期,而Calendar类是一个抽象类,用于将日期和时间以特定的格式显示出来、计算日期和时间的差等。

Date类是Java开发中使用最广泛的日期类之一,它的主要作用是表示一个精确的瞬时时间点,可以使用构造函数或parse()方法来把字符串转换成Date对象。而日期对象的一个常见用法是用它来获取时间戳,也就是在程序中用Date对象来表示当前的时间,从而实现日期和时间的计算,如下面这个例子:

import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
        Date dateStart = new Date(); // 获取当前时间点
        // 这里是执行一些操作....
        Date dateEnd = new Date();
        System.out.println("程序执行时间为:" + (dateEnd.getTime() - dateStart.getTime()) + "毫秒");
    }
}

上面的代码里,我们通过new Date()来创建两个Date对象,分别表示了程序的开始和结束时间,然后调用getTime()方法获取两个时间点的毫秒时间戳,通过相减来计算整个程序的执行时间。

除了获取时间戳,Date类还提供了很多其他方法来获取年、月、日、小时、分钟、秒等时间信息,具体使用方法可以参考Java API文档。

而Calendar类则是一个更为灵活和功能丰富的日期类,在Java 8之后推出的时间类库中,Calendar已经不再被推荐使用,但是在一些老项目中还是经常会用到。

和Date类不同,Calendar类的实例可以指定特定的时区、地区和日历系统,并可以通过set()和add()等方法来对日期和时间进行修改和计算。而且,Calendar类也可以使用format()方法来将日期和时间按照指定格式进行显示。下面我们来看一下一个使用Calendar的例子:

import java.util.Calendar;
public class TestCalendar {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        System.out.println("当前日期为:" + cal.getTime());
        // 显示当前月份的      天
        cal.set(Calendar.DAY_OF_MONTH, 1);
        System.out.println("当前月份的      天:" + cal.getTime());
        // 将日期往后推一年
        cal.add(Calendar.YEAR, 1);
        System.out.println("下一年的今天:" + cal.getTime());
    }
}

在这个例子中,我们首先通过getInstance()方法获取一个Calendar实例,然后调用getTime()方法获取当前日期的Date对象。接着,我们使用set()方法将日期设置为当前月份的 天,使用add()方法将日期往后推一年,最后再次调用getTime()方法得到修改后的Date对象。

总之,Java中的日期类虽然功能不尽相同,但它们都是非常实用的Java类库之一,如果您在编程中需要操作日期和时间,那么不妨使用Date和Calendar来帮助您完成这些任务。