java三种类型的加减,LocalDate、Calendar、Date

@

1.LocalDate类型加减:

以下是LocalDate类进行日期加减:

import java.time.LocalDate;
import java.time.temporal.ChronoUnit; public class DateDemo{
public static void main(String[] args) {
//获取当前日期
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期是: " + currentDate); //加上10天
LocalDate tenDaysLater = currentDate.plusDays(10);
System.out.println("加上10天后的日期是: " + tenDaysLater); //减去2个月
LocalDate twoMonthsAgo = currentDate.minus(2, ChronoUnit.MONTHS);
System.out.println("减去2个月后的日期是: " + twoMonthsAgo);
}
}

运行结果:

当前日期是: 2023-11-23
加上10天后的日期是: 2023-12-03
减去2个月后的日期是: 2023-09-23

可以看到,使用LocalDate类进行加减操作代码比较简洁清晰,也更易读易懂。

2.Calendar加减:

Java中的Calendar类提供了许多方法用于对日期和时间进行加减操作。以下是一些常用的方法:

add(int field, int amount): 对指定字段加上或减去指定的时间量,如Calendar.YEAR, Calendar.MONTH, Calendar.DATE等。

例如,下面的代码将当前日期上进行加减:

import java.util.Calendar;

public class DateCalculator {
public static void main(String[] args) {
// 获取当前日期
Calendar calendar = Calendar.getInstance();
System.out.println("当前日期:" + calendar.getTime()); // 加上3天
calendar.add(Calendar.DATE, 3);
System.out.println("加上3天后:" + calendar.getTime()); // 减去1个月,需要注意的是,由于Calendar类的月份从0开始,因此加减月份时需要注意月份的计算。
calendar.add(Calendar.MONTH, -1);
System.out.println("减去1个月后:" + calendar.getTime()); // 加上2年
calendar.add(Calendar.YEAR, 2);
System.out.println("加上2年后:" + calendar.getTime());
}
}

输出结果:

当前日期:Thu Nov 23 10:42:18 CST 2023
加上3天后:Sun Nov 26 10:42:18 CST 2023
减去1个月后:Thu Oct 26 10:42:18 CST 2023
加上2年后:Sun Oct 26 10:42:18 CST 2025

3.Date类型加减

Date类型在java 8中已经废弃,需要转换为Calendar类型进行加减。

转换Calendar类加减时间:

// 创建Calendar对象
Calendar calendar = Calendar.getInstance();
//创建Date类型默认时间
Date date = new Date();
System.out.println("加减前的日期:"+date);
//将Date类型转换为Calendar类型
calendar.setTime(date);
// 加上一小时
calendar.add(Calendar.HOUR_OF_DAY, 1);
// 减去一天
calendar.add(Calendar.DAY_OF_MONTH, -1);
// 获取加减后的日期
date = calendar.getTime();
System.out.println("加减后的日期:"+date);

运行结果:

加减前的日期:Thu Nov 23 11:02:55 CST 2023
加减后的日期:Wed Nov 22 12:02:55 CST 2023

在这个例子中,我们使用了Calendar类进行日期的加减操作。我们首先创建了一个Calendar对象,并通过setTime()方法设置日期,然后使用add()方法加减日期,最后使用getTime()方法获取加减后的日期。

值得注意的是,Calendar类中有很多常量可以用来表示不同的时间单位,如HOUR_OF_DAY代表小时,DAY_OF_MONTH代表日,等等。

总的来说,使用Date类和Calendar类进行日期加减操作是非常灵活和方便的。

java中LocalDate、Calendar、Date类型进行加减的更多相关文章

  1. Java 中,如何对日期进行加减操作

    今天在做项目时,遇到了对时间的加减进行操作的需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经查询资料,自己写 ...

  2. Java中的Calendar方法

    /** * @Title:JavaDate.java * @Package:com.yhd.chart.model * @Description:Java中的Calendar总结 * @author: ...

  3. JS中String类型转换Date类型 并 计算时间差

    JS中String类型转换Date类型 1.比较常用的方法,但繁琐,参考如下:主要使用Date的构造方法:Date(int year , int month , int day)<script& ...

  4. Java中String转换Double类型 Java小数点后留两位

    Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...

  5. Java中由Calendar类获取的月、天和小时的简单处理

    在Java中,Calendar是日期处理的一个重要的类.但是,我们使用Calendar获取的月份,天,小时等可能需要进行简单的处理才能满足我们的需要.比如,月份范围是0-11,而我们可能需要的是1-1 ...

  6. 【JavaScript】JS将Java的Timestamp转为Date类型

    遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “ ...

  7. Java 中要将 String 类型转化为 int 类型

    在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. 例1: 1 2 3 4 5 6 S ...

  8. 在JAVA中怎么比较Double类型数据的大小

    在JAVA中怎么比较Double类型数据的大小  我来答  浏览 33044 次   3个回答 #活动# “双11”答题活动,奖励加码!最高得2000元购物礼金! pollutedair 2015- ...

  9. JAVA中的六种日期类型使用

    基本的6种日期类 /** * 六种时间类型的类 * 数据库格式的时间三种格式 */ java.util.Date date = new java.util.Date();//年与日时分秒 //数据库的 ...

  10. Java对日期Date类进行加减运算,年份加减,月份加减

      import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Da ...

随机推荐

  1. Nginx报错:nginx: [error] OpenEvent("Global\ngx_reload_14944") failed (2: The system cannot find the file specified)

    nginx.exe -s reload  执行报错 错误原因: Nginx 尚未启动导致,执行 start nginx 命令开启Nginx nginx.exe -s reload 至此问题解决

  2. [nginx]日志中记录自定义请求头

    前言 假设在请求中自定义了一个请求头,key为"version",参数值为"1.2.3",需要在日志中捕获这个请求头. nginx日志配置 只需要用变量http ...

  3. 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)

    什么是 OpenTelemetry? OpenTelemetry 是一个开源的可观测性框架,由云原生基金会(CNCF)托管.它是 OpenCensus 和 OpenTracing 项目的合并.旨在为所 ...

  4. docker service 与 docker stack

    转载请注明出处: 1. Docker Service Docker Service(服务)是用于定义和管理单个容器服务的概念.它是在Docker Swarm集群中运行的容器实例,可以使用docker ...

  5. el-date-picker 在表单中宽度(width)问题

    在使用element-plus的日期选择组件 el-date-picker的时候,发现form表单内的日期选择框并不能跟el-input 一样把宽度撑满.而是要小一圈. 这样在排版中显得不太整齐,但是 ...

  6. AI 与智能化 API 治理的探索实践

    7月 Eolink 受邀参加 QECon 2023 全球软件质量&效能大会(北京站).Eolink CEO 刘昊臻,发表了主题为「AI 与智能化 API 治理的探索实践」的演讲,分享 Eoli ...

  7. cockpit--一款开源的适用于单主机的Linux监控面板

    在搜索Linux监控时,偶然发现一款还不错的监控面板,该面板为red hat开发,适用于各种Linux发行版,部署也非常方便,官方文档Running Cockpit - Cockpit Project ...

  8. 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

    前言 基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证. 考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下: Dell R730 3 ...

  9. GPT-4 到底能帮你干点啥?

    目录 1. 从哪儿聊起呢 2. 潮起潮退 3. 遇强则强,遇我则-- 3.1 玩法一:辅助技能提升 3.2 镜头背后的故事 3.3 玩法二:综合"技术选型" 3.4 镜头背后的故事 ...

  10. webgl 刷底色的基本步骤

    1.在html中建立画布 <canvas id="canvas"><canvas> 2.在js中获取canvas画布 const canvas = docu ...