Java日期加减的三种方式(入门级)

文章目录

  • 一、使用Date进行日期加减
    • ⭐什么是Date日期类型?
    • ⭐Date日期类型
    • ⭐如何用Date日期加减
  • 二、使用Calendar对象完成
    • 什么是Calendar
    • 如何使用Calendar获取年、月、日
    • 使用Calendar对日期加减
  • 三、使用LocalDateTime时间类型
    • 为什么使用LocalDateTime
    • LocalDateTime简介
    • 获取日期的年、月、日、周、时、分、秒
    • 日期加减

一、使用Date进行日期加减

⭐什么是Date日期类型?

在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,并且DateFormat类应用于格式化和解析日期字符串。 在相应的方法Date被弃用。

⭐Date日期类型

在类的所有方法Date接受或返回年,月,日,小时,分钟和秒值,可以分配一个 Date对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数,即1970年1月1日00:00:00GMT。

⭐如何用Date日期加减

一天的时间戳: 86400000
一个月的时间戳:2592000000
一年的时间戳:31104000000

代码演示:

    public class Test{
        public static void main(String[] args) {
	          //获取当前时间
	          Date date=new Date();
	          //把当前时间转化为时间戳
	          long time = date.getTime();
	          //定义一天的时间戳86400000
	          long day=86400000;
	          //定义一个月的时间戳
        	  long month=2592000000L;
          	  long year=31104000000L;
	          //创建时间格式对象
	          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
	          //将时间戳转化为字符串并且加上一天的时间戳
	      	  String time2=sdf.format(new Date(time+day));
	      	   //将时间戳转化为字符串并且加上一个月的时间戳
        	  String time3=sdf.format(new Date(time+month));
        	   //将时间戳转化为字符串并且加上一年的时间戳
        	  String time4=sdf.format(new Date(time+year));
        	  System.out.println("把当前时间增加一天:"+time2);
        	  System.out.println("把当前时间增加一个月:"+time3);
        	  System.out.println("把当前时间增加一年:"+time4);
         }
    }

运行结果如下:
Java日期加减的三种方式(入门级)_第1张图片

二、使用Calendar对象完成

什么是Calendar

Calendar类:

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等
日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

如何使用Calendar获取年、月、日

public class Test6{
		 public static void main(String[] args) {
  		Calendar calendar=Calendar.getInstance();//获取一个日历对象
        //为日历对象定义一个指定日期的数据
        calendar.set(2011,1,11,8,35,15);//为日历对象添加年、月、日
        Date date=calendar.getTime();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(simpleDateFormat.format(date));//将日期转换为字符串
       //获取日历对象的年、月、日
        int year = calendar.get(Calendar.YEAR); //获取日历对象的年份
        int month = calendar.get(Calendar.MONTH);//获取日历对象的月份
        int day = calendar.get(Calendar.DAY_OF_MONTH);//获取日历对象中月份的第几天
        System.out.println("年份:"+year+"\t月份:"+month+"\t第"+day+"天");
        int hour = calendar.get(Calendar.HOUR);//获取日历对象的时
        int minute = calendar.get(Calendar.MINUTE);//获取日历对象的分
        int second = calendar.get(Calendar.SECOND);//获取日历对象的秒
        System.out.println("时"+hour+"分"+minute+"秒"+second);
        }
 }

** 运行结果:**
在这里插入图片描述

使用Calendar对日期加减

代码演示

public class Test7{
	public static void main(String[] args) {
  		Calendar calendar=Calendar.getInstance();//获取一个日历对象
        Date date=calendar.getTime();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("当前日期:"+simpleDateFormat.format(date));//将日期转换为字符串
        calendar.add(Calendar.YEAR,2);  //把当前的年份增加2年
        calendar.add(Calendar.MONTH,-3);  //把当前的月份减少3月
        int year2= calendar.get(Calendar.YEAR);
        int month2= calendar.get(Calendar.MONTH);
        System.out.println("增加后的年份"+year2);
        System.out.println("减少后的月份:"+month2);
        }
    }

运行结果如下:
Java日期加减的三种方式(入门级)_第2张图片

三、使用LocalDateTime时间类型

为什么使用LocalDateTime

Java8出的新的时间日期API都是线程安全的比如LocalDate、LocalTime、LocalDateTime这三个类,计算功能强大,并且性能更好,代码更简洁。

LocalDateTime简介

LocalDate :表示当前日期,相当于:yyyy-MM-dd

LocalTime :表示当前时间,相当于:HH:mm:ss (24小时制) 或者 hh:mm:ss(12小时制)

LocalDateTime :表示当前日期时间,相当于:yyyy-MM-ddTHH:mm:ss ,是前两者的结合

DateTimeFormatter :表示格式化类型,可以取代SimpleDateFormat

Instant :表示时刻,用来表示时间线上的一个点(瞬时),也可以说是时间戳

ZoneId、ZoneOffset :表示时区

ZonedDateTime :表示带时区的日期和时间,是前两者的结合

Duration :表示两个时刻之间的时间间隔

Period :表示两个日期之间的天数

获取日期的年、月、日、周、时、分、秒

代码演示:

public class Test{
	public static void main(String[] args) {
	  //获取当前日期
        LocalDateTime datetime=LocalDateTime.now();
        System.out.println(datetime);
        int year = datetime.getYear();//获取日期对象的年份
        int monthValue = datetime.getMonthValue();//获取日期对象的月份
        int dayOfMonth = datetime.getDayOfMonth();//获取日期对象的日期
        int dayOfWeek =datetime.getDayOfWeek().getValue();//获取日期对象的周期
        int hour = datetime.getHour();//获取日期对象的时
        int minute = datetime.getMinute();//获取日期对象的分钟
        int second = datetime.getSecond();//获取日期对象的秒
        System.out.println("年:"+year+"\t月:"+monthValue+"\t日:"+dayOfMonth+"\t时:"+hour+"\t分:"+minute+"\t秒:"+second+"\t周:"+dayOfWeek);
	}
}

运行结果:
Java日期加减的三种方式(入门级)_第3张图片

日期加减

代码演示

public class Test{
	public static void main(String[] args) {
	 //根据指定的日期创建对象
        LocalDateTime datetime2=LocalDateTime.of(2022,11,17,14,35,20);
        System.out.println("当前日期时间:"+datetime2);
        LocalDateTime plusYear=datetime2.plusYears(2L);//把当前的年份增加2年
        LocalDateTime plusMonths = datetime2.plusMonths(1L);//把当前的月份增加1个月
        LocalDateTime plusDays = datetime2.plusDays(10L);//把当前的日期增加10天
        LocalDateTime plusHours = datetime2.plusHours(-3L);//把当前的时间减少3小时
        LocalDateTime plusMinutes = datetime2.plusMinutes(-20L);//把当前的时间减少20分钟
        LocalDateTime plusSeconds = datetime2.plusSeconds(15);//把当前的时间增加15秒
        System.out.println("年:"+plusYear+"\n月:"+plusMonths+"\n日:"+plusDays+"\n时:"+plusHours+"\n分:"+plusMinutes+"\n秒:"+plusSeconds);
	}
}

运行结果:
Java日期加减的三种方式(入门级)_第4张图片
最后

总结不易,希望小宝们不要吝啬你们的哟(^U^)

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