专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java8日期操作(java 8日期加天数)

temp10 2024-09-19 04:03:44 java教程 13 ℃ 0 评论
  • 获取当天的日期
public static void  main(String[] args) {
        LocalDate today = LocalDate.now(); 
        System.out.println("今天的时间是 : " + today);
        int year = today.getYear();
        int month = today.getMonthValue();
        int day = today.getDayOfMonth();
        System.out.println("Today's Local date : " + today);
        System.out.printf("Year : %d; Month : %d; day : %d%n", year, month, day);
}
  • 偏移时间
LocalDate today = LocalDate.now();
System.out.println("当前时间往后加一周 " + today.plus(1, ChronoUnit.WEEKS));
System.out.println("当前时间往后加一年: " + today.minus(1, ChronoUnit.YEARS));
  • 特定日期
    自定义构建时间
LocalDate date1 = LocalDate.of(2014, 01, 14);
  • 日期比较
LocalDate tomorrow = LocalDate.of(2014, 1, 15); 
if (tommorow.isAfter(today)) {
    System.out.println("Tomorrow comes after today"); 
} 
LocalDate yesterday = today.minus(1, DAYS); 
if (yesterday.isBefore(today)){ 
    System.out.println("Yesterday is day before today"); 
}
  • 日期间隔计算
LocalDate date = LocalDate.of(2014, Month.MARCH, 14);
Period period = Period.between(date, LocalDate.now());
System.out.println("计算结果 : "+period.getYears() + "年: "+ period.getMonths() + "月: "
		+ period.getDays() + "日");

  • 月、日信息 -- MonthDay

日期的另一个重要需求就是重复事件,如每年一度的生日、各种纪念日,每月的账单日等等

MonthDay 提供了解决这类问题的方案,它只包含月和日的信息,而不包含年份信息

Java8日期操作(java 8日期加天数)

LocalDate dateOfBirth = LocalDate.of(2010, 01, 14); 
MonthDay birthday = MonthDay.of(dateOfBirth.getMonth(), dateOfBirth.getDayOfMonth()); 
MonthDay currentMonthDay = MonthDay.from(LocalDate.now()); 
if (currentMonthDay.equals(birthday)) { 
	System.out.println("生日到了"); 
} else { 
	System.out.println("不是生日日"); 
}
  • 时间 -- LocalTime
    与 LocalDate 十分类似,获取当前时间信息的是 LocalTime 类,他与 LocalDate 类刚好相反,他只包含时间信息,不包含任何日期相关的信息
LocalTime time = LocalTime.now();
System.out.println("当前时间 : " + time);
System.out.println("1小时后的时间 : " + time.plusHours(1));
  • 日期、时间 -- LocalDateTime
    LocalDateTime 是 LocalDate 和 LocalTime 结合的日期时间,它的使用与前面介绍的是完全一样的:
LocalDateTime datetime = LocalDateTime.now();
System.out.println("当前日期 : " + datetime);
System.out.println("1小时后的时间 : " + datetime.plusHours(1));
System.out.println("2年前 时间: " + datetime.minusYears(2));
  • 时间戳 -- Instant
    java8 中,Instant 类用来存储时间戳,可以方便的获取:
Instant timestamp = Instant.now();
System.out.println("当前时间戳 : " + timestamp.getEpochSecond());
System.out.println("System时间戳 : " + System.currentTimeMillis());
  • 日期格式
String dayAfterTommorrow = "20140116";
LocalDate formatted = LocalDate.parse(dayAfterTommorrow,
	DateTimeFormatter.BASIC_ISO_DATE);
System.out.printf("Date generated from String %s is %s %n",
	dayAfterTommorrow, formatted);

自定义日期格式化DateTimeFormatter:

try {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    LocalDate holiday = LocalDate.parse(goodFriday, formatter);
    System.out.printf(holiday);
} catch (DateTimeParseException ex) {
    ex.printStackTrace();
}
  • 日期转换
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();

LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println("Date = " + date);
System.out.println("LocalDateTime = " + localDateTime);

LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);

ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zdt = localDateTime.atZone(zoneId);

Date date = Date.from(zdt.toInstant());

给个转发,关注,谢谢

Spring MVC 异步请求方式

SpringCloud Nacos 整合feign

SpringMVC参数统一验证方法

SpringBoot多数据源配置详解

Spring Cloud Sentinel整合Feign

springboot mybatis jpa 实现读写分离

SpringBoot开发自己的Starter

SpringBoot RabbitMQ消息可靠发送与接收

SpringBoot开发自己的@Enable功能

SpringCloud zuul 动态网关配置

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表