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

使用Java的时间类来操作日期和时间

发布时间:2023-06-15 01:38:04

Java提供了很多时间类,可以很方便地操作日期和时间。其中比较常用的时间类有Date、Calendar、DateFormat、SimpleDateFormat等。

1.Date类

Date类表示一个特定的瞬间,即从1970年1月1日00:00:00起到所表示时间的毫秒数(long值)。Date类有很多构造方法,也可以通过getTime()方法获取时间的毫秒数。

import java.util.Date;

public class DateTest {

    public static void main(String[] args) {

        //当前时间

        Date date = new Date();

        System.out.println(date);

        //指定时间

        Date date2 = new Date(2020, 2, 2);

        System.out.println(date2);

        //时间戳

        Date date3 = new Date(System.currentTimeMillis());

        System.out.println(date3);

    }

}

2.Calendar类

Calendar类是抽象类,用于操作日期和时间。它提供了一些静态方法,可以获取该类的实例,还提供了很多实例方法,可以进行日期和时间的计算、格式化等操作。

import java.util.Calendar;

public class CalendarTest {

    public static void main(String[] args) {

        //获取实例

        Calendar cal1 = Calendar.getInstance();

        Calendar cal2 = Calendar.getInstance();

        

        //设置年月日

        cal1.set(Calendar.YEAR, 2020);

        cal1.set(Calendar.MONTH, 1);

        cal1.set(Calendar.DAY_OF_MONTH, 2);

        

        //获取年月日

        int year = cal1.get(Calendar.YEAR);

        int month = cal1.get(Calendar.MONTH);

        int day = cal1.get(Calendar.DAY_OF_MONTH);

        System.out.println(year + "-" + (month + 1) + "-" + day);

        

        //计算日期

        cal2.add(Calendar.DAY_OF_MONTH, 10);

        System.out.println(cal2.getTime());

        

        //比较日期

        boolean flag = cal1.before(cal2);

        System.out.println(flag);

    }

}

3.DateFormat类

DateFormat类用于格式化日期和时间。它是抽象类,可以通过SimpleDateFormat类实现。DateFormat类有很多实例方法可以根据模板字符串,格式化输出不同格式的日期和时间。

import java.text.DateFormat;

import java.text.ParseException;

import java.util.Date;

public class DateFormatTest {

    public static void main(String[] args) throws ParseException {

        //指定日期和时间格式

        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

        Date date = new Date();

        String str = dateFormat.format(date);

        System.out.println(str);

        

        //将字符串解析为日期

        DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");

        String str2 = "2020-02-02";

        Date date2 = dateFormat2.parse(str2);

        System.out.println(date2);

    }

}

4.SimpleDateFormat类

SimpleDateFormat类是DateFormat类的子类,它可以设置任意的日期格式。通过它可以格式化输出不同格式的日期和时间,也可以将字符串解析为日期。

import java.text.SimpleDateFormat;

import java.util.Date;

public class SimpleDateFormatTest {

    public static void main(String[] args) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Date date = new Date();

        String str = sdf.format(date);

        System.out.println(str);

    }

}

总结:

Java提供了很多时间类,可以满足不同情况下的需求。需要注意的是,Date和Calendar类在计算日期时,月份是从0开始的,即0代表一月。DateFormat和SimpleDateFormat类在设置日期格式时,需要注意大小写。