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. [oracle]使用impdp导入数据时卡在视图

    前言 oracle 19c使用impdp的时候卡在导入视图的地方一点不动,也没啥提示.根据网上资料,oracle 19在导入视图的时候会有bug. 步骤 查看导入任务 sqlplus / as sys ...

  2. 浅谈 Linux 下 vim 的使用

    Vim 是从 vi 发展出来的一个文本编辑器,其代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. Vi 是老式的字处理器,功能虽然已经很齐全了,但还有可以进步的地方.Vim 可 ...

  3. 手写RISC-V处理器(1)

    由来 由于去年工作变动,有幸进入了芯片行业,但主要工作内容为基于RISC-V的嵌入式应用软件开发,几乎接触不到芯片设计的相关知识,然而随着工作的深入,越来越想探究一下运行在软件之下的CPU的世界,于是 ...

  4. 《Kali渗透基础》01. 介绍

    @ 目录 1:渗透测试 1.1:安全问题的根源 1.2:安全目标 1.3:渗透测试 1.4:标准 2:Kali 2.1:介绍 2.2:策略 2.3:安装 3:Kali 初步设置 3.1:远程连接 3. ...

  5. 谈一谈电商API接口

    随着电商行业的快速发展,越来越多的企业开始意识到并利用API接口来提升其电商平台的功能和效率.但是,对于普通用户来说,对API接口可能还不太了解.那么,什么是API接口,特别是电商API接口呢?本文将 ...

  6. FastDFS入门

    一.系统架构 二.构成部分 1.Tracker Server:跟踪服务器,记录文件信息,可单台或集群部署. 2.Storage Server:存储服务器,文件存储位置,分卷或分组部署. 3.Clien ...

  7. pandas常用的数据类型,(serises和dataform)

  8. Solution Set -「ABC 193」

    「ABC 193A」Discount Link. 略. #include<cstdio> int main() { int a,b; scanf("%d %d",&am ...

  9. 如何在Nuxt3.0中使用MongoDB数据库

    如何在Nuxt3.0中使用MongoDB数据库 一.介绍 Nuxt.js 是一个基于 Vue.js 的开源框架,用于构建服务端渲染 (Server-Side Rendering, SSR) 或静态生成 ...

  10. 【RocketMQ】事务实现原理总结

    RocketMQ事务的使用场景 单体架构下的事务 在单体系统的开发过程中,假如某个场景下需要对数据库的多张表进行操作,为了保证数据的一致性,一般会使用事务,将所有的操作全部提交或者在出错的时候全部回滚 ...