📅  最后修改于: 2023-12-03 14:42:21.409000             🧑  作者: Mango
Java8引入了一组全新的日期和时间API,这个新的API位于java.time
包中。这个新的API为处理日期和时间提供了更好的方式,也更易于使用。下面我们来看看这个包的使用方法。
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();
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();
LocalDateTime
是一个日期时间对象,表示一个特定的日期和时间,它同时包括年,月,日,小时,分钟,秒和纳秒。我们可以通过下面的代码来创建一个LocalDateTime
对象。
LocalDateTime dateTime = LocalDateTime.now(); //获取当前的日期和时间
LocalDateTime dateTime2 = LocalDateTime.of(2019, 5, 20, 15, 30, 0); //指定日期时间为2019年5月20日下午3点30分
我们也可以通过toLocalDate()
方法获取日期,通过toLocalTime()
方法获取时间。
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();
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();
DateTimeFormatter
是一个日期时间格式化对象,它可以将一个LocalDate
,LocalTime
或LocalDateTime
格式化为一个字符串。我们可以通过下面的代码来创建一个DateTimeFormatter
对象。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
我们可以通过format
方法将一个LocalDate
,LocalTime
或LocalDateTime
对象格式化为一个字符串。
LocalDateTime now = LocalDateTime.now();
String nowStr = now.format(formatter); //将一个LocalDateTime对象格式化为一个字符串
以上就是java.time
包的主要内容,这个新的API功能非常强大,希望上面的教程对你有所帮助。