【java8的特性-4】日期时间!

一、获取当前时间

Java 8提供了三个主要的类来处理日期和时间:LocalDate、LocalTime和LocalDateTime。以下是这些类的简要说明:

  • LocalDate: 代表一个日期,它包含了年、月、日等信息,但没有时间信息。

  • LocalTime: 代表一个时间,它包含了小时、分钟、秒等信息,但没有日期信息。

  • LocalDateTime: 代表一个日期时间,它包含了年、月、日、小时、分钟、秒等信息。

//获取当前日期和时间
		LocalDate date=LocalDate.now();
		LocalTime time=LocalTime.now();
		LocalDateTime dateTime=LocalDateTime.now();
			
		System.out.println(String.format("当前日期:%s", date));
		System.out.println(String.format("当前时间:%s", time));
		System.out.println(String.format("当前日期时间:%s",dateTime));

输出结果:

 二、类型转换

        //类型转换
		//字符串=>localdate
		String strDate="2023-10-01";
		date=LocalDate.parse(strDate);
		System.out.println(String.format("指定日期:%s", date));

        //整数值=>localdate
		date=LocalDate.of(2022, 5, 1);
		System.out.println(String.format("指定日期:%s", date));

 输出结果:

 三、日期计算

        LocalDate now=LocalDate.now();  //获取当前时间
		//十天后
		System.out.println("十天后是:"+now.plus(10, ChronoUnit.DAYS));

		//十天前
		System.out.println("十天前是:"+now.plus(-10, ChronoUnit.DAYS));
		

四、计算时间间隔

Duration类可以用来处理一段时间间隔,例如两个时间点之间的时间差。 

Duration duration = Duration.between(LocalTime.of(4, 20, 10), LocalTime.now()); // 计算两个日期时间对象之间的时间间隔
		long days1 = duration.toDays(); // 获取天数
		long hours = duration.toHours(); // 获取小时数
		long minutes = duration.toMinutes(); // 获取分钟数
		System.out.println(days1);
		System.out.println(hours);
		System.out.println(minutes);

输出结果:

 

Period类则可以用来处理一段时间段,例如两个日期之间的时间差。

        LocalDate date1=LocalDate.parse("2023-10-01");
		LocalDate date2=LocalDate.parse("2021-05-20");
		
        //方式一
		Period result=Period.between(date1, date2);
		System.out.printf("间隔%d年%d月%d天",result.getYears(),result.getMonths(),result.getDays());
       
        //方式二
        long days=date1.toEpochDay()-date2.toEpochDay();
		System.out.println(days);
		

输出结果:

 

五、获取指定日期

        LocalDate today=LocalDate.now();
		
		LocalDate firstDayOfMonth=today.with(TemporalAdjusters.firstDayOfMonth());
		System.out.println("当前月的第一天:"+firstDayOfMonth);
		
		LocalDate lastDayOfMonth=today.with(TemporalAdjusters.lastDayOfMonth());
		System.out.println("当前月的最后一天:"+lastDayOfMonth);
		
		LocalDate firstDayOfnextMonth=today.with(TemporalAdjusters.lastDayOfMonth()).plus(1,ChronoUnit.DAYS);
		System.out.println("下个月的第一天:"+firstDayOfnextMonth);
		
		LocalDate lastWeekOfMonth=today.with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY));
		System.out.println("本月的最后一个星期一:"+lastWeekOfMonth);
		

 输出结果:

【java8的特性-4】日期时间!_第1张图片

你可能感兴趣的:(开发语言,java)