📜  java.time包教程(1)

📅  最后修改于: 2023-12-03 14:42:21.409000             🧑  作者: Mango

Java.time包教程

Java8引入了一组全新的日期和时间API,这个新的API位于java.time包中。这个新的API为处理日期和时间提供了更好的方式,也更易于使用。下面我们来看看这个包的使用方法。

1. LocalDate 本地日期

LocalDate是一个日期对象,表示一个特定的日期,它只包括年,月,日。我们可以通过下面的代码来创建一个LocalDate对象。

LocalDate date = LocalDate.now();  //获取当前的日期
LocalDate date2 = LocalDate.of(2019, 5, 20); //指定日期为2019年5月20日

我们也可以通过getXXX()方法来获取日期的年月日等信息。

int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
2. LocalTime 本地时间

LocalTime是一个时间对象,表示一个特定的时间,它只包括小时,分钟,秒和纳秒。我们可以通过下面的代码来创建一个LocalTime对象。

LocalTime time = LocalTime.now(); //获取当前的时间
LocalTime time2 = LocalTime.of(15, 30, 0); //指定时间为下午3点30分

我们也可以通过getXXX()方法来获取时间的小时,分钟和秒数等信息。

int hour = time.getHour();
int minute = time.getMinute();
int second = time.getSecond();
3. LocalDateTime 本地日期和时间

LocalDateTime是一个日期时间对象,表示一个特定的日期和时间,它同时包括年,月,日,小时,分钟,秒和纳秒。我们可以通过下面的代码来创建一个LocalDateTime对象。

LocalDateTime dateTime = LocalDateTime.now(); //获取当前的日期和时间
LocalDateTime dateTime2 = LocalDateTime.of(2019, 5, 20, 15, 30, 0); //指定日期时间为2019年5月20日下午3点30分

我们也可以通过toLocalDate()方法获取日期,通过toLocalTime()方法获取时间。

4. Duration 时间跨度

Duration是一个时间跨度对象,表示两个时间的差值(单位为纳秒)。我们可以通过下面的代码来创建一个Duration对象。

Instant startTime = Instant.now();
//一些代码
Instant endTime = Instant.now();
Duration duration = Duration.between(startTime, endTime); //获取两个时间的时间跨度

我们可以通过toDays()toHours()等方法获取时间跨度的具体时间数值。

long days = duration.toDays();
long hours = duration.toHours();
long minutes = duration.toMinutes();
long seconds = duration.getSeconds();
long millis = duration.toMillis();
long nanos = duration.toNanos();
5. Period 时间段

Period是一个时间段对象,表示两个日期的差值(单位为年,月,日)。我们可以通过下面的代码来创建一个Period对象。

LocalDate startDate = LocalDate.of(2019, 5, 20);
LocalDate endDate = LocalDate.now();
Period period = Period.between(startDate, endDate); //获取两个日期的时间段

我们可以通过getYears()getMonths()等方法获取时间段的具体时间数值。

int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();
6. DateTimeFormatter 日期时间格式化

DateTimeFormatter是一个日期时间格式化对象,它可以将一个LocalDateLocalTimeLocalDateTime格式化为一个字符串。我们可以通过下面的代码来创建一个DateTimeFormatter对象。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

我们可以通过format方法将一个LocalDateLocalTimeLocalDateTime对象格式化为一个字符串。

LocalDateTime now = LocalDateTime.now();
String nowStr = now.format(formatter); //将一个LocalDateTime对象格式化为一个字符串

以上就是java.time包的主要内容,这个新的API功能非常强大,希望上面的教程对你有所帮助。