Java8 日期和时间类的基本使用攻略
Java8引入了全新的日期和时间API,这个API提供了一些非常有用和强大的类和方法,它们用于处理日期、时间、时间间隔以及处理时区等问题。本文将详细介绍Java8日期和时间API的基本使用方法和示例。
Java8日期类
Java8日期类主要分为三种类型:
- LocalDate:处理日期
- LocalTime:处理时间
- LocalDateTime:同时处理日期和时间
创建日期类对象
创建日期类对象的方式如下:
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
上述代码创建了一个当前日期和时间的对象,使用now()
方法获取当前日期和时间。还可以使用静态工厂方法of()
创建指定的日期和时间对象:
LocalDate localDate = LocalDate.of(2021, Month.MARCH, 24);
LocalTime localTime = LocalTime.of(15, 30, 0);
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
获取日期类对象信息
可以使用以下方法获取日期类对象的信息:
方法 | 描述 |
---|---|
getYear() |
获取年份 |
getMonth() |
获取月份枚举类型Month |
getMonthValue() |
获取月份数值 |
getDayOfMonth() |
获取月份中的日期 |
getDayOfWeek() |
获取星期几枚举类型DayOfWeek |
getDayOfYear() |
获取年份中的第几天 |
示例代码如下:
LocalDate localDate = LocalDate.now();
int year = localDate.getYear();
Month month = localDate.getMonth();
int monthValue = localDate.getMonthValue();
int dayOfMonth = localDate.getDayOfMonth();
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
int dayOfYear = localDate.getDayOfYear();
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("月份数值:" + monthValue);
System.out.println("月份中的日期:" + dayOfMonth);
System.out.println("星期几:" + dayOfWeek);
System.out.println("年份中的第几天:" + dayOfYear);
操作日期类对象
日期类对象的操作方法如下:
方法 | 描述 |
---|---|
plusYears(long years) |
增加指定年数 |
plusMonths(long months) |
增加指定月数 |
plusDays(long days) |
增加指定天数 |
minusYears(long years) |
减少指定年数 |
minusMonths(long months) |
减少指定月数 |
minusDays(long days) |
减少指定天数 |
示例代码如下:
LocalDate localDate = LocalDate.of(2021, Month.MARCH, 24);
LocalDate nextYearDate = localDate.plusYears(1); //2022年3月24日
LocalDate nextMonthDate = localDate.plusMonths(1); //2021年4月24日
LocalDate nextDayDate = localDate.plusDays(1); //2021年3月25日
LocalDate lastYearDate = localDate.minusYears(1); //2020年3月24日
LocalDate lastMonthDate = localDate.minusMonths(1); //2021年2月24日
LocalDate lastDayDate = localDate.minusDays(1); //2021年3月23日
Java8时间类
Java8时间类可以用于处理时分秒等问题。
创建时间对象
创建时间对象的方式如下:
LocalTime localTime = LocalTime.now();
获取时间对象信息
可以使用以下方法获取时间对象的信息:
方法 | 描述 |
---|---|
getHour() |
获取小时 |
getMinute() |
获取分钟 |
getSecond() |
获取秒数 |
getNano() |
获取纳秒数 |
示例代码如下:
LocalTime localTime = LocalTime.now();
int hour = localTime.getHour();
int minute = localTime.getMinute();
int second = localTime.getSecond();
int nano = localTime.getNano();
System.out.println("小时:" + hour);
System.out.println("分钟:" + minute);
System.out.println("秒数:" + second);
System.out.println("纳秒数:" + nano);
操作时间对象
时间类对象的操作方法如下:
方法 | 描述 |
---|---|
plusHours(long hours) |
增加指定小时数 |
plusMinutes(long minutes) |
增加指定分钟数 |
plusSeconds(long seconds) |
增加指定秒数 |
plusNanos(long nanos) |
增加指定纳秒数 |
minusHours(long hours) |
减少指定小时数 |
minusMinutes(long minutes) |
减少指定分钟数 |
minusSeconds(long seconds) |
减少指定秒数 |
minusNanos(long nanos) |
减少指定纳秒数 |
示例代码如下:
LocalTime localTime = LocalTime.of(15, 30, 0);
LocalTime nextHourTime = localTime.plusHours(1); //16:30:00
LocalTime nextMinuteTime = localTime.plusMinutes(1); //15:31:00
LocalTime nextSecondTime = localTime.plusSeconds(1); //15:30:01
LocalTime nextNanoTime = localTime.plusNanos(1); //15:30:00.000000001
LocalTime lastHourTime = localTime.minusHours(1); //14:30:00
LocalTime lastMinuteTime = localTime.minusMinutes(1); //15:29:00
LocalTime lastSecondTime = localTime.minusSeconds(1); //15:29:59
LocalTime lastNanoTime = localTime.minusNanos(1); //15:29:59.999999999
Java8日期时间类
Java8日期时间类用于同时处理日期和时间。
创建日期时间对象
创建日期时间对象的方式如下:
LocalDateTime localDateTime = LocalDateTime.now();
操作日期时间对象
日期时间类对象的操作方法和日期时间类似。
示例代码如下:
LocalDateTime localDateTime = LocalDateTime.of(2021, Month.MARCH, 24, 15, 30, 0);
LocalDateTime nextYearDateTime = localDateTime.plusYears(1); //2022年3月24日15时30分0秒
LocalDateTime nextMonthDateTime = localDateTime.plusMonths(1); //2021年4月24日15时30分0秒
LocalDateTime nextDayDateTime = localDateTime.plusDays(1); //2021年3月25日15时30分0秒
LocalDateTime lastYearDateTime = localDateTime.minusYears(1); //2020年3月24日15时30分0秒
LocalDateTime lastMonthDateTime = localDateTime.minusMonths(1); //2021年2月24日15时30分0秒
LocalDateTime lastDayDateTime = localDateTime.minusDays(1); //2021年3月23日15时30分0秒
总结
Java8日期和时间API是一个非常强大的工具,能够轻松地处理日期、时间、时间间隔和时区等问题。这个API是基于Joda Time API开发的,提供了很多实用的类和方法,使用非常方便。本文介绍了Java8日期和时间API的基本用法,如果你希望更深入地学习此API,可以参考相关文档或书籍。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java8 日期和时间类的基本使用 - Python技术站