java中LocalDateTime、Calendar、Date三种时间类型进行加减

这篇具有很好参考价值的文章主要介绍了java中LocalDateTime、Calendar、Date三种时间类型进行加减。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

介绍了三种日期类型以及他们的日期加减

什么是LocalDateTime

LocalDateTime是Java 8中的一个类,表示不带时区的日期和时间。它是java.time包中的一个类,用于处理日期和时间的操作。

LocalDateTime包含日期和时间的信息,不包含时区信息。它提供了各种方法来获取和操作日期和时间的各个部分,例如年、月、日、时、分、秒等。

与其他日期和时间类相比,LocalDateTime主要用于处理本地日期和时间的操作。它适合用于应用程序中不涉及时区转换的场景,例如计算两个日期之间的间隔、格式化日期和时间等。

什么是Calendar

在Java中,Calendar是一个用于处理日期和时间的类。它提供了许多方法来获取和设置日期、时间以及执行日期和时间的计算操作。使用Calendar类,可以执行各种常见的日期和时间操作,如获取当前日期和时间、计算两个日期之间的差异、添加或减去指定数量的年、月、日、小时、分钟等等。

Calendar类是一个抽象类,通过调用其静态方法getInstance()来获取一个Calendar对象的实例。可以使用Calendar对象来获取和设置年、月、日、小时、分钟、秒等日期和时间的具体值。此外,Calendar类还提供了一些方便的方法来执行日期和时间的计算、比较和格式化等操作。

什么是Date

在Java中,Date是表示日期和时间的类。它是Java提供的最早的日期和时间类之一,用于表示从1970年1月1日 00:00:00 GMT(格林尼治标准时间)开始经过的毫秒数。

Date类可以用于获取和设置日期和时间的值,执行日期和时间的计算和比较操作。它提供了多个构造方法,可以根据传入的参数来创建Date对象,包括指定年、月、日、小时、分钟、秒数等等。

LocalDateTime类型加减

在Java中,我们可以使用LocalDateTime类型进行加减操作。具体操作如下:

  1. 加法操作:

我们可以使用plusXXX()方法进行加法操作,在方法中传入一个时间量Duration或者Period。

例如:

LocalDateTime now = LocalDateTime.now(); //默认当前时间
LocalDateTime after = now.plusDays(1);  // 加1天
LocalDateTime before = now.plusHours(-3);  // 减3小时
System.out.println(after);
System.out.println(before);

结果:
localdatetime 加减,java,开发语言

  1. 减法操作:

我们可以使用minusXXX()方法进行减法操作,在方法中传入一个时间量Duration或者Period。

例如:

LocalDateTime now = LocalDateTime.now(); //默认当前时间
LocalDateTime before = now.minusDays(1);  // 减1天
LocalDateTime after = now.minusHours(-3);  // 减3小时
System.out.println(before);
System.out.println(after);

结果:
localdatetime 加减,java,开发语言

值得注意的是,plusXXX()minusXXX()方法会返回一个新的LocalDateTime对象,原有的对象并不会被修改。因此,我们需要将新的对象保存起来或者直接使用它。

需要注意的一点是,PeriodDuration是不同的时间量单位。Period是以年、月、日的方式表示时间间隔,而Duration是以秒、毫秒、纳秒等为单位表示时间间隔。因此,在使用plusXXX()minusXXX()方法的时候,需要根据具体情况选择合适的时间量类型。

Calendar加减

在Java中,我们可以使用Calendar类型进行加减操作。具体操作如下:

  1. 加法操作:

我们可以使用add()方法进行加法操作,在方法中传入一个时间单位和该单位需要增加的数量。

例如:

Calendar cal = Calendar.getInstance(); //默认当前时间
cal.add(Calendar.DATE, 1);  // 加1天
cal.add(Calendar.HOUR_OF_DAY, -3);  // 减3小时  // 减3小时
System.out.println(cal.getTime());

结果:
localdatetime 加减,java,开发语言

  1. 减法操作:

我们可以使用add()方法进行减法操作,在方法中传入一个时间单位和该单位需要减少的数量。需要注意的是,由于add()方法没有提供减法操作的直接实现,因此需要传入负数来实现减法操作。

例如:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);  // 减1天
cal.add(Calendar.HOUR_OF_DAY, 3);  // 加3小时,实现减法操作需传入负数-3
System.out.println(cal.getTime());

结果:
localdatetime 加减,java,开发语言

需要注意的一点是,由于Calendar类型是线程不安全的,因此在多线程环境下使用时需要进行同步操作,或者使用线程安全的ThreadLocal来存储Calendar实例。

另外,从Java 8开始,建议使用java.time包中的新型日期时间API(例如LocalDateTime)来替代Calendar类型,因为新型API更加易用、更加清晰,同时也更加符合现代编程的需求。

Date类型加减

在Java中,我们可以使用java.util.Date类型进行加减操作。但是需要注意的是,Date类型存在一些缺陷和问题,例如时区不支持、可变性等问题。

因此,从Java 8开始,建议使用新型日期时间APIjava.time中的LocalDateLocalTimeLocalDateTime等类型来替代Date类型。

不过如果你仍然需要使用Date类型进行加减操作,可以按照以下步骤进行:

  1. 通过getTime()方法将Date类型转换为毫秒数,进行加减操作:
Date date = new Date(); //默认当前时间
long time = date.getTime();  // 获取毫秒数
time += 24 * 60 * 60 * 1000;  // 加1天,单位为毫秒
date.setTime(time);  // 将毫秒数转换为Date类型
System.out.println(date);

结果:
localdatetime 加减,java,开发语言

  1. 通过Calendar类型进行加减操作:
Date date = new Date(); //默认当前时间
Calendar cal = Calendar.getInstance();
cal.setTime(date);  // 将Date类型转换为Calendar类型
cal.add(Calendar.DATE, 1);  // 加1天
date = cal.getTime();  // 将Calendar类型转换为Date类型
System.out.println(date);

结果:
localdatetime 加减,java,开发语言

需要注意的一点是,由于Date类型存在可变性的问题,不建议在多线程环境下进行操作,可以考虑使用线程安全的ThreadLocal来存储Date实例。同时,在Java 8之前的版本中,也可以考虑使用第三方日期时间库Joda-Time来替代Date类型。

总结

  1. LocalDateTime是Java 8中的一个类,表示不带时区的日期和时间。
  2. Calendar是一个用于处理日期和时间的类,它提供了许多方法来获取和设置日期、时间以及执行日期和时间的计算操作。
  3. Date是表示日期和时间的类。它是Java提供的最早的日期和时间类之一,用于表示从1970年1月1日 00:00:00 GMT(格林尼治标准时间)开始经过的毫秒数。

日期的加减这就不用过多总结了,用法都是固定的。文章来源地址https://www.toymoban.com/news/detail-762941.html

到了这里,关于java中LocalDateTime、Calendar、Date三种时间类型进行加减的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    java三种类型的加减,LocalDate、Calendar、Date @ 目录 1.LocalDate类型加减: 2.Calendar加减: 3.Date类型加减 以下是LocalDate类进行日期加减: 运行结果: 可以看到,使用LocalDate类进行加减操作代码比较简洁清晰,也更易读易懂。 Java中的Calendar类提供了许多方法用于对日期和时间进行加减操

    2024年02月05日
    浏览(51)
  • Java String、Date、Calendar、LocalDate和LocalDateTime互转

    目录 一、String和Date互转 1.1 String时间转为Date 1.2 Date转为String 二、String和Calendar互转 2.1 String时间转为Calendar 2.2 Calendar转为String 三、String和LocalDate(LocalDateTime)互转 3.1 String时间转为LocalDate(LocalDateTime) 3.2 LocalDate(LocalDateTime)转为String 四、Date和Calendar互转 4.1 Date转为Calen

    2024年02月06日
    浏览(48)
  • Java中的日期时间类详解(Date、Calendar、DateFormat)

    Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍Java时间的几种常见方法以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不

    2024年02月05日
    浏览(38)
  • java关于后端怎么去接收Date、LocalDateTime类型的参数

    Date类型后端入参的格式默认为2019/01/18 11:11:11 Get方式传参 是 没有时区的影响的 @JsonFormat的作用: 返回给前端的时间是经过@JsonFormat格式化的时间。 @DateTimeFormat的作用: 前端需要按照@DateTimeForma的格式进行传参 示例: Date 类型直接作为参数的情况 Date类型属性的实体类作为参

    2024年02月05日
    浏览(44)
  • 日期与时间【Date/SimpleDateFormat/Calendar】

    视频链接:https://www.bilibili.com/video/BV1Cv411372m?p=121vd_source=9140dcc493e34a9f4e95ca2f8f71bbd3 Date类的对象在java中代表的是当前所在系统的此刻日期时间。 Date的构造器 public Date():创建一个Date对象,代表的是系统当前此刻日期时间。 Date的常用方法 public long getTime():获取时间对象的毫秒值

    2024年02月03日
    浏览(45)
  • 【Java】postman如何传递Date时间类型数据

    提示:遇到的问题,自己记录一下 提示:测试时需要传递Date类型数据

    2024年02月13日
    浏览(50)
  • Java Date类型返回前端后 变成时间戳

    今天遇到这样一个问题,数据库查出来的数据是 Date 日期 和 Time时间。 但是传给前端就变成了 时间戳的格式 比如\\\"yyyy-MM-dd hh:mm:ss.000+0000\\\" 数据库查询如下 前端JSON格式如下 如果想直接转成前端想要的参数呢,有几种方法 ,比如Date类型查出来后 截取固定位置的方式返回给前端

    2024年02月15日
    浏览(47)
  • java基础: Date类型最常用的时间计算(相当全面)

    目录 1. 前言:  2. 具体方法实现 2.1 获取当天的开始时间 2.2 获取当天的结束时间 2.3 获取昨天的开始时间 2.4 获取昨天的结束时间 2.5 获取明天的开始时间 2.6 获取明天的结束时间 2.7 获取本周的开始时间 2.8 获取本周的结束时间 2.9 获取本月的开始时间 2.10 获取本月的结束时间

    2024年02月05日
    浏览(52)
  • API(Date类,SimpleDateFormat类,Calendar类,JDK8时间相关类,包装类,算法小题)

    JDK7时间相关类 JDK8时间相关类 包装类 综合练习 Collection集合 能够使用日期类输出当前日期 能够使用将日期格式化为字符串的方法 能够使用将字符串转换成日期的方法 能够说出8种基本类型对应的包装类名称 能够说出自动装箱、自动拆箱的概念 能够将字符串转换为对应的基

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包