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 ...
随机推荐
- C++ 核心指南之 C++ 哲学/基本理念(下)
C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup.Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南.规则及最佳实践.旨在帮助大家正确 ...
- Cilium系列-15-7层网络CiliumNetworkPolicy简介
系列文章 Cilium 系列文章 前言 今天我们进入 Cilium 安全相关主题, 介绍 CiliumNetworkPolicies 相比于 Kubernetes 网络策略最大的不同: 7 层网络策略 ...
- [mysql]MGR简介与部署
前言 MySQL Group Replication,简称MGR,是MySQL官方于2016年推出的一个全新的高可用解决方案,采用Paxos分布式一致性协议作为高可用和一致性解决方案.在MGR之前的高 ...
- go创建web项目分别在windows和linux部署
转载请注明出处: 要在Linux服务器上运行Go的Web项目,可以按照以下步骤进行操作: 在服务器上安装Go:首先,在Linux服务器上安装Go编程语言.你可以从官方网站(https://golang ...
- Go/C++/Java中的数组对比
数组是大多数编程语言中的基本数据结构.然而,不同的编程语言对数组的实现和语义有所不同.以下是 Go.C++ 和 Java 中数组的主要区别: 1. 基本性质 Go: 数组是值类型.赋值或将数组传递给函 ...
- 使用redis pipeline提升性能
前言 本篇来介绍一下redis pipeline,主要是由于最近一次在帮开发同学review代码的时候,发现对redis有个循环操作可以优化.场景大概是这样的,根据某个uid要从redis查询一批数据 ...
- 个人GAN训练的性能迭代
使用GAN进行生成图片 损失函数的迭代 DCGAN->Wasserstein GAN-> Wasserstein GAN + Gradient Penalty Discriminator训 ...
- 《SQL与数据库基础》15. 触发器
目录 触发器 语法 示例-insert型触发器 示例-update型触发器 示例-delete型触发器 本文以 MySQL 为例 触发器 触发器是与表有关的数据库对象,指在 insert/update ...
- wget 命令的使用:HTTP文件下载、FTP文件下载--九五小庞
1. wget 命令简介与安装wget是用于在命令行终端下载网络文件的开源免费的命令工具,支持 HTTP/HTTPS.FTP/FTPS 协议的下载.wget 与 curl 相似,curl 可以理解为是 ...
- 小白快速入门SRC挖掘(以edusrc为例)
edusrc平台介绍 我们可以在关于页面看到edusrc的收录规则: 现阶段,教育行业漏洞报告平台接收如下类别单位漏洞: 教育部 各省.自治区教育厅.直辖市教委.各级教育局 学校 教育相关软件 可以看 ...