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

Java中常见的日期和时间函数有哪些,如何使用它们?

发布时间:2023-06-13 21:00:08

Java中常见的日期和时间函数有很多,其中包括Date类、Calendar类、SimpleDateFormat类、Instant类、LocalDate类、LocalTime类、LocalDateTime类等。下面就逐个进行介绍。

1. Date类:Date类是Java SE 1.0中引入的一个代表日期的类。可以使用它来表示一个特定的日期,可以处理日期、时间和时间戳等问题,但是该类已经过时,不推荐使用。

2. Calendar类:Calendar类是一个抽象类,用于处理日期和时间。它提供了很多方法来获取不同类型的日期和时间信息,可以对日期和时间进行加减运算和比较。但是该类也比较复杂,使用不方便。

3. SimpleDateFormat类:SimpleDateFormat类用于解析和格式化日期和时间。可以使用它来将日期和时间格式化成字符串,也可以将字符串转换为日期和时间。例如,可以将一个Date对象格式化为“yyyy-MM-dd”格式的字符串。

4. Instant类:Instant类是Java 8中引入的一个代表时间戳的类。它可以精确表示时间,且没有时区的概念。可以使用它来获取当前时间戳,也可以对时间戳进行加减运算和比较。

5. LocalDate类、LocalTime类、LocalDateTime类:这三个类用于分别代表日期、时间和日期时间。它们都是Java 8中引入的类,可以用于处理本地日期和时间,通过这些类可以方便地获取或者修改日期时间信息。

使用这些类的具体操作可以参考下面的示例:

1. Date类的使用:

import java.util.Date;

public class TestDate {
    public static void main(String[] args) {
        Date date = new Date(); // 获取当前时间
        long time = date.getTime(); // 获取时间戳
        System.out.println("当前时间:"+date.toString());
        System.out.println("时间戳:"+time);
    }
}

2. Calendar类的使用:

import java.util.Calendar;

public class TestCalendar {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance(); // 获取当前时间
        int year = calendar.get(Calendar.YEAR); // 获取年份
        int month = calendar.get(Calendar.MONTH) + 1; // 获取月份
        int day = calendar.get(Calendar.DAY_OF_MONTH); // 获取日
        int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取小时
        int minute = calendar.get(Calendar.MINUTE); // 获取分钟
        int second = calendar.get(Calendar.SECOND); // 获取秒
        System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
        calendar.add(Calendar.YEAR, 1); // 加1年
        calendar.add(Calendar.MONTH, -1); // 减1月
        Date date = calendar.getTime(); // 转换为Date对象
        System.out.println(date.toString());
    }
}

3. SimpleDateFormat类的使用:

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

public class TestSimpleDateFormat {
    public static void main(String[] args) {
        Date date = new Date(); // 获取当前时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 定义格式化对象
        String strDate = sdf.format(date); // 格式化日期
        System.out.println(strDate);
    }
}

4. Instant类的使用:

import java.time.Instant;

public class TestInstant {
    public static void main(String[] args) {
        Instant instant = Instant.now(); // 获取当前时间戳
        long timestamp = instant.getEpochSecond(); // 获取秒数的时间戳
        System.out.println("当前时间戳:"+timestamp);
        instant = instant.plusSeconds(60); // 加1分钟
        System.out.println(instant.toString());
    }
}

5. LocalDate类、LocalTime类、LocalDateTime类的使用:

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

public class TestLocalDate {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now(); // 获取当前日期
        int year = date.getYear(); // 获取年份
        int month = date.getMonthValue(); // 获取月份
        int day = date.getDayOfMonth(); // 获取日
        System.out.println(year + "-" + month + "-" + day);
        date = date.plusYears(1); // 加1年
        date = date.plusMonths(-1); // 减1月
        System.out.println(date.toString());
     
        LocalTime time = LocalTime.now(); // 获取当前时间
        int hour = time.getHour(); // 获取小时
        int minute = time.getMinute(); // 获取分钟
        int second = time.getSecond(); // 获取秒
        System.out.println(hour + ":" + minute + ":" + second);
        time = time.plusHours(1); // 加1小时
        time = time.plusMinutes(-1); // 减1分钟
        System.out.println(time.toString());
     
        LocalDateTime datetime = LocalDateTime.now(); // 获取当前日期时间
        year = datetime.getYear(); // 获取年份
        month = datetime.getMonthValue(); // 获取月份
        day = datetime.getDayOfMonth(); // 获取日
        hour = datetime.getHour(); // 获取小时
        minute = datetime.getMinute(); // 获取分钟
        second = datetime.getSecond(); // 获取秒
        System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
        datetime = datetime.plusYears(1); // 加1年
        datetime = datetime.plusMonths(-1); // 减1月
        datetime = datetime.plusDays(1); // 加1日
        datetime = datetime.plusHours(-1); // 减1小时
        datetime = datetime.plusMinutes(1); // 加1分钟
        System.out.println(datetime.toString());
    }
}

注:本文参考了CSDN博客“sheep9109”的文章。