Java8中日期的特性,别再用Date来处理日期啦~
时间:2022-07-22
本文章向大家介绍Java8中日期的特性,别再用Date来处理日期啦~,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
01. 获取当前日期
格式:yyyy-MM-dd
LocalDate today = LocalDate.now();
System.out.println("今天的日期:" + today);
02. 获取日期中的年/月/日
getMonthValue() 获取月 getDayOfMonth() 获取天
LocalDate today = LocalDate.now();
int year = today.getYear();
System.out.println("年:" + year);
03. 创建自定义日期
LocalDate date = LocalDate.of(2060, 02, 17);
System.out.println("自定义时间:" + date);
04. 判断两个日期是否相等
LocalDate today = LocalDate.now();
LocalDate demoDate = LocalDate.of(2020, 2, 25);
if (today.equals(demoDate)) {
System.out.println("两个时间相等!");
} else {
System.out.println("两个时间不相等!");
}
05. 判断日期周期性 例如:国庆节
LocalDate national = LocalDate.of(2020, 10, 1);
MonthDay monthDay = MonthDay.of(national.getMonth(), national.getDayOfMonth());
MonthDay currentMonthDay = MonthDay.from(today);
if(currentMonthDay.equals(monthDay)){
System.out.println("国庆节到啦,举国同庆!");
}else{
System.out.println("国庆节还没到!");
}
06. 获取当前时间
LocalTime time = LocalTime.now();
System.out.println("当前时间:" + time);
07. 获取指定N小时/N分/N秒后的时间
plusMinutes(9) 9分钟后 plusSeconds(9) 9秒钟后
LocalTime time = LocalTime.now();
LocalTime plusHours = time.plusHours(9);
System.out.println("9小时后:" + plusHours);
08. 计算N天/N周/N月/N年后的日期 ChronoUnit声明单位
LocalDate today = LocalDate.now();
LocalDate plusYears = today.plus(2, ChronoUnit.YEARS);
System.out.println("两年后:" + plusYears);
09. 计算N天/N周/N月/N年前的日期 ChronoUnit声明单位
LocalDate today = LocalDate.now();
LocalDate minusYears = today.minus(2, ChronoUnit.YEARS);
System.out.println("两年前:" + minusYears);
10. Clock时钟类,获取当前时间戳
Clock clock = Clock.systemUTC();
System.out.println("当前时间戳:" + clock.millis());
Clock systemDefaultClock = Clock.systemDefaultZone();
System.out.println("当前默认时区时间戳:" + systemDefaultClock.millis());
11. 判断某个日期小于或大于指定日期 isAfter/isBefore
LocalDate today = LocalDate.now();
if(today.isAfter(future)){
System.out.println("在指定日期之前");
}else{
System.out.println("在指定日期之后");
}
12. 时区处理
ZoneId americaZone = ZoneId.of("America/New_York");
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime americaZoneTime = ZonedDateTime.of(localDateTime, americaZone);
System.out.println("当前时间的美国纽约时间:" + americaZoneTime);
13. 获取当前年月/当前月份多少天
YearMonth currentYearMonth = YearMonth.now();
System.out.println("当前年月:" + currentYearMonth);
System.out.println("当前月份有多少天:" + currentYearMonth.lengthOfMonth());
YearMonth futureYearMonth = YearMonth.of(2021, Month.FEBRUARY);
System.out.println("指定年月:" + futureYearMonth);
14. 校验日期是否是闰年
isLeapYear()函数,闰年返回true,否则返回false
if(today.isLeapYear()){
System.out.println(today.getYear() + "是闰年!");
}else {
System.out.println(today.getYear() + "不是闰年!");
}
15. 计算两个时间之间的天数/月数
LocalDate today = LocalDate.now();
LocalDate futureLocalDate = LocalDate.of(2020, 3, 25);
Period period = Period.between(today, futureLocalDate);
System.out.println("两个日期相差:" + period.getMonths() + "月!");
16. 获取当前时间戳
Instant instant = Instant.now();
System.out.println("当前时间戳:" + instant.toEpochMilli());
17. 格式化日期
String strDate = "20220101";
LocalDate parseLocalDate = LocalDate.parse(strDate, DateTimeFormatter.BASIC_ISO_DATE);
System.out.println("格式化后的日期:" + parseLocalDate);
18. 字符串日期互转
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String strNow = now.format(format);
System.out.println("日期转字符串:" + strNow);
System.out.println("字符串转日期:" + LocalDate.parse(strNow, format));
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释