目录
4)ofEpochMilli(long epochMilli)
2)LocalDate.of(int year, int month, int dayOfMonth)
2)minusDays(long daysToSubtract)
3)getYear(), getMonthValue(), getDayOfMonth()
4)with(TemporalAdjuster adjuster)
2)LocalTime.of(int hour, int minute, int second, int nanoOfSecond)
2)minusMinutes(long minutesToSubtract)
3)getHour(), getMinute(), getSecond(), getNano()
2)LocalDateTime.of(LocalDate date, LocalTime time)
2)minusHours(long hoursToSubtract)
1)Period.between(LocalDate startDate, LocalDate endDate)
2)getYears(), getMonths(), getDays()
4)minusMonths(long monthsToSubtract)
1)Duration.between(LocalTime startTime, LocalTime endTime)
2)Duration.ofSeconds(long seconds)
2)plusSeconds(long secondsToAdd)
3)minusNanos(long nanosToSubtract)
1. Instant 类
Instant
表示时间线上的一个瞬间点,通常用于记录应用程序中的时间戳。
-
构造方法
1)Instant.now()
:获取当前时间戳。
Instant now = Instant.now();
-
常用方法
1)plus(Duration duration)
- 返回一个新的
Instant
对象,表示在当前时间基础上加上指定的持续时间。Instant now = Instant.now(); Instant later = now.plus(Duration.ofHours(1));
2)minus(Duration duration)
- 返回一个新的
Instant
对象,表示在当前时间基础上减去指定的持续时间。Instant now = Instant.now(); Instant earlier = now.minus(Duration.ofHours(1));
3)toEpochMilli()
- 将
Instant
转换为自 1970-01-01T00:00:00Z(UTC)以来的毫秒数。Instant now = Instant.now(); long epochMillis = now.toEpochMilli();
4)ofEpochMilli(long epochMilli)
- 从给定的自 1970-01-01T00:00:00Z 以来的毫秒数创建
Instant
。Instant now = Instant.now(); Instant instantFromMillis = Instant.ofEpochMilli(epochMillis);
5)案例:Instant类的简单使用
1.代码
package org.xiji.mydate; import java.time.Duration; import java.time.Instant; public class MyInstant { public static void main(String[] args) { //Instant类的api简单使用 Instant instant = Instant.now(); System.out.println("Instant获取当前时间:"+instant); //表示在当前时间基础上加上指定的持续时间。 System.out.println("Instant获取当前时间戳后面一个小时:"+instant.plus(Duration.ofHours(1))); System.out.println("Instant获取当前时间戳之前一个小时:"+instant.minus(Duration.ofHours(1))); System.out.println("Instant获取当前时间戳的毫秒数:"+instant.toEpochMilli()); } }
2.效果
2. LocalDate 类
LocalDate
表示不带时区的日期(年、月、日)。
-
构造方法
1)LocalDate.now()
- 获取当前日期。
LocalDate today = LocalDate.now();
2)LocalDate.of(int year, int month, int dayOfMonth)
- 从给定的年、月、日创建
LocalDate
。LocalDate today = LocalDate.now(); LocalDate specificDate = LocalDate.of(2023, 10, 9);
-
常用方法
1)plusDays(long daysToAdd)
- 返回一个新的
LocalDate
对象,表示在当前日期基础上加上指定的天数。LocalDate today = LocalDate.now(); LocalDate tomorrow = today.plusDays(1);
2)minusDays(long daysToSubtract)
-
返回一个新的
LocalDate
对象,表示在当前日期基础上减去指定的天数。LocalDate today = LocalDate.now(); LocalDate yesterday = today.minusDays(1);
3)getYear()
, getMonthValue()
, getDayOfMonth()
- 分别获取年、月、日。
LocalDate today = LocalDate.now(); int year = today.getYear(); int month = today.getMonthValue(); int day = today.getDayOfMonth();
4)with(TemporalAdjuster adjuster)
- 使用
TemporalAdjuster
调整日期。LocalDate today = LocalDate.now(); LocalDate firstDayOfNextMonth = today.with(TemporalAdjusters.firstDayOfNextMonth());
案例:LocalDate的简单使用
1.代码
package org.xiji.mydate; import java.time.LocalDate; public class MyLocalDate { public static void main(String[] args) { System.out.println("LocalDate的api简单使用"); LocalDate localDate = LocalDate.now(); System.out.println("LocalDate获取当前时间:"+localDate); System.out.println("LocalDate获取当前年份:"+localDate.getYear()); System.out.println("LocalDate获取当前月份:"+localDate.getMonth()); System.out.println("LocalDate获取星期几:"+localDate.getDayOfWeek()); } }
2.效果
3. LocalTime 类
LocalTime
表示不带时区的时间(小时、分钟、秒、纳秒)。
-
构造方法
1)LocalTime.now()
- 获取当前时间。
LocalTime now = LocalTime.now();
2)LocalTime.of(int hour, int minute, int second, int nanoOfSecond)
- 从给定的小时、分钟、秒、纳秒创建
LocalTime
。LocalTime now = LocalTime.now(); LocalTime specificTime = LocalTime.of(14, 30, 0, 0);
-
常用方法
1)plusHours(long hoursToAdd)
- 返回一个新的
LocalTime
对象,表示在当前时间基础上加上指定的小时数。LocalTime now = LocalTime.now(); LocalTime later = now.plusHours(1);
2)minusMinutes(long minutesToSubtract)
- 返回一个新的
LocalTime
对象,表示在当前时间基础上减去指定的分钟数。LocalTime now = LocalTime.now(); LocalTime earlier = now.minusMinutes(30);
3)getHour()
, getMinute()
, getSecond()
, getNano()
- 分别获取小时、分钟、秒、纳秒。
LocalTime now = LocalTime.now(); int hour = now.getHour(); int minute = now.getMinute(); int second = now.getSecond(); int nano = now.getNano();
案例:LocalTime的简单使用
1.代码
package org.xiji.mydate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; public class MyLocalTime { public static void main(String[] args) { LocalTime localTime = LocalTime.now(); System.out.println("LocalTime获取当前时间:"+localTime); System.out.println("LocalTime获取当前小时:"+localTime.getHour()); System.out.println("LocalTime获取当前分钟:"+localTime.getMinute()); System.out.println("LocalTime获取当前秒:"+localTime.getSecond()); System.out.println("LocalTime获取当前毫秒:"+localTime.getNano()); System.out.println("LocalTime获取当前时间:"+localTime.toString()); //日期格式化 System.out.println("LocalTime日期格式化:"+localTime.format(DateTimeFormatter.ofPattern("HH:mm:ss"))); } }
2.效果
4. LocalDateTime 类
LocalDateTime
表示不带时区的日期和时间(年、月、日、小时、分钟、秒、纳秒)。
-
构造方法
1)LocalDateTime.now()
- 获取当前日期和时间。
LocalDateTime now = LocalDateTime.now();
2)LocalDateTime.of(LocalDate date, LocalTime time)
- 从给定的
LocalDate
和LocalTime
创建LocalDateTime
。LocalDateTime now = LocalDateTime.now(); LocalDateTime specificDateTime = LocalDateTime.of(specificDate, specificTime);
-
常用方法
1)plusDays(long daysToAdd)
- 返回一个新的
LocalDateTime
对象,表示在当前日期和时间基础上加上指定的天数。LocalDateTime now = LocalDateTime.now(); LocalDateTime tomorrow = now.plusDays(1);
2)minusHours(long hoursToSubtract)
- 返回一个新的
LocalDateTime
对象,表示在当前日期和时间基础上减去指定的小时数。LocalDateTime now = LocalDateTime.now(); LocalDateTime earlier = now.minusHours(1);
3)toLocalDate()
- 获取
LocalDate
部分。LocalDateTime now = LocalDateTime.now(); LocalDate datePart = now.toLocalDate();
4)toLocalTime()
- 获取
LocalTime
部分。LocalDateTime now = LocalDateTime.now(); LocalTime timePart = now.toLocalTime();
案例:LocalDateTime的简单使用
1.代码
package org.xiji.mydate; import java.time.LocalDateTime; public class MyLocalDateTime { public static void main(String[] args) { System.out.println("LocalDateTime的api简单使用"); System.out.println("LocalDateTime获取当前时间:"+ LocalDateTime.now()); System.out.println("LocalDateTime获取当前年份:"+LocalDateTime.now().getYear()); System.out.println("LocalDateTime获取当前月份:"+LocalDateTime.now().getMonth()); System.out.println("LocalDateTime获取当前月份:"+LocalDateTime.now().getMonthValue()); System.out.println("LocalDateTime获取当前星期几:"+LocalDateTime.now().getDayOfWeek()); System.out.println("LocalDateTime获取当前星期几的值:"+LocalDateTime.now().getDayOfWeek().getValue()); System.out.println("LocalDateTime获取当前星期几的名字:"+LocalDateTime.now().getDayOfWeek().name()); } }
2.效果
5. Period 类
Period
表示一段时间,通常是日期之间的差值,以年、月、日为单位。
-
构造方法
1)Period.between(LocalDate startDate, LocalDate endDate)
- 计算两个
LocalDate
之间的差值。Period period = Period.between(startDate, endDate);
-
常用方法
2)getYears()
, getMonths()
, getDays()
- 分别获取年、月、日。
Period period = Period.between(startDate, endDate); int years = period.getYears(); int months = period.getMonths(); int days = period.getDays();
3)plusYears(long yearsToAdd)
- 返回一个新的
Period
对象,表示在当前时间段基础上加上指定的年数。Period period = Period.between(startDate, endDate); Period longerPeriod = period.plusYears(1);
4)minusMonths(long monthsToSubtract)
- 返回一个新的
Period
对象,表示在当前时间段基础上减去指定的月数。Period period = Period.between(startDate, endDate); Period shorterPeriod = period.minusMonths(1);
案例:Period的简单使用
1.代码
package org.xiji.mydate; import java.time.LocalDate; public class MyPeriod { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2018, 1, 1); LocalDate date2 = LocalDate.of(2018, 12, 31); System.out.println("LocalDate的api简单使用"); System.out.println("LocalDate获取date1当前时间:"+date1); System.out.println("LocalDate获取date2当前时间:"+date2); System.out.println("LocalDate。date2是否在date1之后:"+(date2.isAfter(date1))); System.out.println("LocalDate。date2是否在date1之前:"+(date2.isBefore(date1))); System.out.println("LocalDate。date2和date1是否相等:"+(date2.isEqual(date1))); System.out.println("LocalDate。date2是否是闰年:"+(date2.isLeapYear())); System.out.println("LocalDate。date2这个月的天数:"+(date2.lengthOfMonth())); System.out.println("LocalDate。date2这一年的天数:"+(date2.lengthOfYear())); System.out.println("LocalDate。date2之前一天:"+(date2.minusDays(1))); System.out.println("LocalDate。date2之前一个月:"+(date2.minusMonths(1))); System.out.println("LocalDate。date2之前一年:"+(date2.minusYears(1))); System.out.println("LocalDate。date2之后一天:"+(date2.plusDays(1))); System.out.println("LocalDate。date2之后一个月:"+(date2.plusMonths(1))); System.out.println("LocalDate。date2之后一年:"+(date2.plusYears(1))); } }
2.效果
6. Duration 类
Duration
表示一段时间,通常是时间之间的差值,以秒和纳秒为单位。
-
构造方法
1)Duration.between(LocalTime startTime, LocalTime endTime)
- 计算两个
LocalTime
之间的差值。Duration duration = Duration.between(startTime, endTime);
2)Duration.ofSeconds(long seconds)
- 从给定的秒数创建
Duration
。Duration oneMinute = Duration.ofSeconds(60);
-
常用方法
1)getSeconds()
, getNano()
- 分别获取秒数和纳秒数。
Duration duration = Duration.between(startTime, endTime); long seconds = duration.getSeconds(); int nano = duration.getNano();
2)plusSeconds(long secondsToAdd)
- 返回一个新的
Duration
对象,表示在当前时间段基础上加上指定的秒数。Duration duration = Duration.between(startTime, endTime); Duration longerDuration = duration.plusSeconds(60);
3)minusNanos(long nanosToSubtract)
- 返回一个新的
Duration
对象,表示在当前时间段基础上减去指定的纳秒数。Duration duration = Duration.between(startTime, endTime); Duration shorterDuration = duration.minusNanos(1000000);
案例:Duration类的简单使用
1.代码
package org.xiji.mydate; import java.time.Duration; public class MyDuration { public static void main(String[] args) { System.out.println("Duration的api简单使用"); Duration duration = Duration.ofDays(1); System.out.println("Duration获取天数:"+duration.toDays()); System.out.println("Duration获取小时:"+duration.toHours()); System.out.println("Duration获取分钟:"+duration.toMinutes()); System.out.println("Duration获取秒:"+duration.getSeconds()); System.out.println("Duration获取纳秒:"+duration.toNanos()); System.out.println("Duration获取毫秒:"+duration.toMillis()); } }