首页 > 编程语言 >java中LocalDate、Calendar、Date类型进行加减

java中LocalDate、Calendar、Date类型进行加减

时间:2023-11-23 11:48:01浏览次数:41  
标签:java 加减 日期 Date Calendar LocalDate calendar

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,加减,日期,Date,Calendar,LocalDate,calendar
From: https://www.cnblogs.com/xioaliang/p/17851203.html

相关文章

  • pandas datetime 获取当前时间之前一个月的时间
    在Python中,我们可以使用pandas和datetime模块来获取当前日期之前一个月的时间。以下是一个示例:使用pandas:importpandasaspdfrompandas.tseries.offsetsimportDateOffset#获取当前日期now=pd.to_datetime('today')#计算一个月前的日期one_month_ago=now-DateOf......
  • 需要注意的运算符 | JAVA
    算术运算符需要注意的是a++和++a的区别。intd=25;//查看d++与++d的不同System.out.println("d++="+(d++));System.out.println("++d="+(++d));其中d++=25,++d=27;相当于遇到print的时候,d++有一个顺序,从左到右,也就......
  • 前端学习-JavaScript学习-JavaScript高级程序设计-第3章笔记
    第3章基础概念数据类型Number<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"......
  • Date、Calendar(日历对象)、LocalDateTime三大时间日期类的各种处理方式【精选集】
    Date类:1.1、将字符串型时间日期转化为date类型StringtimeString="2023-11-1709:27:00";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//创建"简单时间格式化"对象,格式为:yyyy-MM-ddHH:mm:sstry{D......
  • Java时间截和日期格式相互转换的方法。
    1.将时间戳转换为日期格式: 2.将日期格式转换为时间戳: ......
  • java日期时间类运算Date,Calendar,LocalDateTime(详细用法)
    ✨前言✨本片文章,主要在于使用Date,Calendar,LocalDateTime三种时间类,进行日期之间的运算,及使用......
  • java中如何两个日期比大小。
    1、数值型long比较获取long型的今日/系统当前时间数值型(long型)日期的获取方式主要有2个:longtime=System.currentTimeMillis()获取系统当前时间,精确到毫秒longtoday=Date.getTime(),即通过Date型日期调用getTime()方法获取,精确毫秒。 2、日期型Date直接比较日期型Date的......
  • Java开发者的Python快速进修指南:迭代器(Iterator)与生成器
    这一篇内容可能相对较少,但是迭代器在Java中是有用处的。因此,我想介绍一下Python中迭代器的使用方法。除了写法简单之外,Python的迭代器还有一个最大的不同之处,就是无法直接判断是否还有下一个元素。我们只能通过捕获异常或使用for循环来退出迭代,这点让我感到十分惊讶。可迭代对象......
  • Java Calendar 日历类型
    JavaCalendar日历类型概念java.util.Claendar日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法,该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值获取方式由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来......
  • Java LocalDateTime 日期类型
    JavaLocalDateTime日期类型一.新时间日期API常用、重要对象介绍ZoneId:时区ID,用来确定Instant和LocalDateTime互相转换的规则Instant:用来表示时间线上的一个点(瞬时)LocalDate:表示没有时区的日期,LocalDate是不可变并且线程安全的LocalTime:表示没有时区的时间,Loc......