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

一、使用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);
         }
    }

运行结果如下:

二、使用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);
        }
    }

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

三、使用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);
	}
}

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

🌌日期加减

代码演示

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);
	}
}

运行结果:
在这里插入图片描述
🍋最后🍋

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

  • 30
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的提问!以下是一个入门级Java RESTful教程的简要步骤: 1. 确保您已经安装了Java开发环境(JDK)以及一个适用于Java开发的集成开发环境(IDE),如Eclipse或IntelliJ IDEA。 2. 创建一个新的Java项目,并添加所需的依赖项。在Java中,您可以使用一些流行的框架来构建RESTful服务,如Spring Boot或Jersey。您可以在项目的构建文件(如pom.xml或build.gradle)中添加这些依赖项。 3. 定义您的RESTful API端点。RESTful服务由一组URI(统一资源标识符)和HTTP方法组成。您可以使用注解(如@RequestMapping,@GET,@POST等)来定义您的端点和请求方法。 4. 实现您的API端点。根据您的业务逻辑,编写相应的处理方法。您可以在方法上使用注解来指定请求路径和HTTP方法,并使用参数注解来接收请求参数。 5. 配置您的应用程序。根据您选择的框架,您可能需要进行一些配置,例如数据库连接、安全性设置等。 6. 启动您的应用程序。运行您的应用程序并启动内置的Web服务器(如果适用),或者将应用程序部署到外部Web服务器中。 7. 使用工具(如Postman或cURL)测试您的API。发送HTTP请求以测试您的API端点,并验证其响应是否符合预期。 这只是一个简单的入门级教程,涵盖了一些基本的步骤。如果您想深入了解Java RESTful开发,还可以学习更多高级的主题,如身份验证和授权、异常处理、数据验证等。 希望这个简要的指南能帮助您入门Java RESTful开发!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值