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

Java的日期时间函数

发布时间:2023-06-18 19:13:09

在Java中,针对日期和时间的处理提供了java.util和java.time两个包。其中,java.util包已经被java.time所取代,但是在旧的代码中,java.util包仍然被广泛使用。

1. java.util包中的日期处理

在java.util包中,主要的日期时间类有:

- Date:表示某个时间点上的日期和时间

- Calendar:可以用于处理日期和时间,支持时区和日历

- SimpleDateFormat:用于格式化日期和时间

下面是一些常见的日期格式:

- yyyy:年份,如1999

- MM:月份,如04

- dd:日期,如25

- HH:小时,按24小时制,如14

- hh:小时,按12小时制,如02

- mm:分钟,如38

- ss:秒钟,如05

- SSS:毫秒,如789

下面是一个例子:

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

public class DateExample {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

        System.out.println(formatter.format(date));
    }
}

输出结果为:

25/05/2021 14:38:05

2. java.time包中的日期处理

在Java SE 8中,新的日期和时间处理类已经被引入,位于java.time包中。该包中的主要类有:

- LocalDate:表示日期(年月日)。

- LocalTime:表示时间(小时,分钟,秒钟和毫秒)。

- LocalDateTime:表示日期和时间。

- ZonedDateTime:表示带时区的日期和时间。

- DateTimeFormatter:用于格式化日期和时间。

下面是一个例子:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class LocalDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");

        System.out.println(now.format(formatter));
    }
}

输出结果为:

25/05/2021 14:39:11

3. 日期和时间的计算

使用日期和时间处理类,可以进行日期和时间的计算。下面是一些常见的计算方法:

- plusYears(long years):增加指定年数

- plusMonths(long months):增加指定月数

- plusDays(long days):增加指定天数

- plusHours(long hours):增加指定小时数

- plusMinutes(long minutes):增加指定分钟数

- plusSeconds(long seconds):增加指定秒数

- plusMillis(long millis):增加指定毫秒数

下面是一个例子:

import java.time.LocalDateTime;

public class LocalDateTimeCalculationExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        LocalDateTime tomorrow = now.plusDays(1);
        LocalDateTime nextWeek = now.plusWeeks(1);

        System.out.println("Now: " + now);
        System.out.println("Tomorrow: " + tomorrow);
        System.out.println("Next week: " + nextWeek);
    }
}

输出结果为:

Now: 2021-05-25T14:43:43.666004
Tomorrow: 2021-05-26T14:43:43.666004
Next week: 2021-06-01T14:43:43.666004

4. 日期和时间的比较

使用日期和时间处理类,可以进行日期和时间的比较。下面是一些常见的比较方法:

- isAfter(ChronoLocalDateTime<?> other):判断当前日期和时间是否晚于指定日期和时间

- isBefore(ChronoLocalDateTime<?> other):判断当前日期和时间是否早于指定日期和时间

- isEqual(ChronoLocalDateTime<?> other):判断当前日期和时间是否等于指定日期和时间

下面是一个例子:

import java.time.LocalDateTime;

public class LocalDateTimeComparisonExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime tomorrow = now.plusDays(1);

        if (now.isBefore(tomorrow)) {
            System.out.println("Tomorrow is after today.");
        } else {
            System.out.println("Today is after tomorrow.");
        }
    }
}

输出结果为:

Tomorrow is after today.

总结:

Java提供了丰富的日期时间处理类,开发者可以根据需要使用不同的类来完成日期时间的处理。在Java SE 8中,java.time包中的日期时间处理类被推荐使用。理解这些日期时间处理类的用法,可以为开发者在处理和计算日期时间问题时提供很大的方便。