Java中的日期和时间

244 阅读2分钟

Java 没有内置的 Date 类,但我们可以导入包 java.time 以使用日期和时间 API。该软件包包括许多日期和时间类。例如:

ClassDescription
LocalDate日期(year, month, day (yyyy-MM-dd))
LocalTime时间(hour, minute, second and nanoseconds (HH-mm-ss-ns))
LocalDateTime日期和时间(yyyy-MM-dd-HH-mm-ss-ns)
DateTimeFormatter格式化显示

显示当前日期

若要显示当前日期,请导入 java.time.LocalDate 类,并使用其 now() 方法:

import java.time.LocalDate;

public class LocalDateDemo {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);
    }
}

// 2023-11-15

显示当前时间

若要显示当前时间(小时、分钟、秒和纳秒),请导入类 java.time.LocalTime ,并使用其 now() 方法:

import java.time.LocalTime;

public class LocalTimeDemo {
    public static void main(String[] args) {
        LocalTime localTime = LocalTime.now();
        System.out.println(localTime);
    }
}

// 14:01:32.288634

显示当前日期和时间

若要显示当前日期和时间,请导入 java.time.LocalDateTime 类,并使用其 now() 方法:

import java.time.LocalDateTime;

public class LocalDateTimeDemo {
    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);
    }
}

// 2023-11-15T14:03:27.608109900

格式化日期和时间

上例中的“T”用于将日期与时间分开。可以将该 DateTimeFormatter 类与同一包中 ofPattern() 的方法一起使用,以格式化或分析日期时间对象。以下示例将从日期时间中删除“T”和纳秒:

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

public class DateTimeFormateDemo {
    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("原始格式时间:" + localDateTime);

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formateTime = localDateTime.format(dateTimeFormatter);
        System.out.println("格式后的时间:" + formateTime);
    }
}

// 原始格式时间:2023-11-15T14:09:56.577320300
// 格式后的时间:2023-11-15 14:09:56

如果要以不同的格式显示日期和时间,该 ofPattern() 方法接受各种值。例如:

格式
yyyy-MM-dd"1988-09-29"
dd/MM/yyyy"29/09/1988"
dd-MMM-yyyy"29-Sep-1988"
E, MMM dd yyyy"Thu, Sep 29 1988"