java中LocalDate、Calendar、Date类型进行加减
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类型进行加减的更多相关文章
- Java 中,如何对日期进行加减操作
今天在做项目时,遇到了对时间的加减进行操作的需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经查询资料,自己写 ...
- Java中的Calendar方法
/** * @Title:JavaDate.java * @Package:com.yhd.chart.model * @Description:Java中的Calendar总结 * @author: ...
- JS中String类型转换Date类型 并 计算时间差
JS中String类型转换Date类型 1.比较常用的方法,但繁琐,参考如下:主要使用Date的构造方法:Date(int year , int month , int day)<script& ...
- Java中String转换Double类型 Java小数点后留两位
Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...
- Java中由Calendar类获取的月、天和小时的简单处理
在Java中,Calendar是日期处理的一个重要的类.但是,我们使用Calendar获取的月份,天,小时等可能需要进行简单的处理才能满足我们的需要.比如,月份范围是0-11,而我们可能需要的是1-1 ...
- 【JavaScript】JS将Java的Timestamp转为Date类型
遇到一个小需求,由于要填充日期插件里的数据,前台要把java后台传来的Date类型的数据转成YYYY-MM-DD格式的时间数据.通过json传输,Java的Date类型的数据自动转成了时间戳,例如 “ ...
- Java 中要将 String 类型转化为 int 类型
在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. 例1: 1 2 3 4 5 6 S ...
- 在JAVA中怎么比较Double类型数据的大小
在JAVA中怎么比较Double类型数据的大小 我来答 浏览 33044 次 3个回答 #活动# “双11”答题活动,奖励加码!最高得2000元购物礼金! pollutedair 2015- ...
- JAVA中的六种日期类型使用
基本的6种日期类 /** * 六种时间类型的类 * 数据库格式的时间三种格式 */ java.util.Date date = new java.util.Date();//年与日时分秒 //数据库的 ...
- Java对日期Date类进行加减运算,年份加减,月份加减
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Da ...
随机推荐
- html中的一些常用标签与标签属性
label for属性 定义和用法 for 属性规定 label 与哪个表单元素绑定. <span> <label for="username">用户账号& ...
- 操作系统复习 MITS6.1810 lab util 记录
lab util sleep 介绍:主要用来熟悉下环境以及代码结构. See kernel/sysproc.c for the xv6 kernel code that implements the ...
- [python]enumerate迭代
Python中有个内置的函数叫做 enumerate,可以在迭代时返回元素的索引. # 示例代码01 warframe = ["saryn", "wisp", ...
- 如何爆破js加密后的密码?
如何爆破js加密后的密码? 1.首先burp中安装插件: https://github.com/whwlsfb/BurpCrypto 安装插件完毕后,分析进行js加密的算法. 2.分析加密过程: 找到 ...
- Typora 主题,设置代码块Mac风格三个小圆点
目录 打造Typora主题 1 typoa样式修改步骤 1.1 第一步打开偏好设置 1.2 第二步打开主题文件夹 2 标题添加颜色 3 表格优化 4 代码块Mac风格三个圆点 5 主题总代码如下: 打 ...
- Web通用漏洞--文件上传
Web通用漏洞--文件上传 概述 文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判 ...
- C#中多线程的用法
1.在C#中使用多线程可以使用Thread 代码例子: public class ThreadExample { public static void ThreadProc() { for (int ...
- .NET周刊【8月第2期 2023-08-14】
本周由于Myuki大佬感染新冠,国际板块暂停更新一周,将在下周补齐,所以本周只有国内板块. 国内文章 解决 Blazor 中因标签换行导致的行内元素空隙问题 https://www.cnblogs.c ...
- 领域驱动设计(DDD):三层架构到DDD架构演化
三层架构的问题 在前文中,我从基础代码的角度探讨了如何运用领域驱动设计(DDD)来实现高内聚低耦合的代码.本篇文章将从项目架构的角度,继续探讨三层架构与DDD之间的演化过程,以及DDD如何优化架构的问 ...
- Codeforces 1257D - Yet Another Monster Killing Problem
题意: 有\(n\)个怪物,每个怪物有攻击力\(a_i\)点:有\(m\)个英雄,每个英雄有攻击力\(p_i\)点,耐力\(s_{i}\)点. 怪物需要被依次杀死(按输入顺序). 每一天可以挑选一个英 ...