Java中的Date类型向前向后滚动时间(附工具类)

废话不多说,先看工具类:

 1 import java.text.SimpleDateFormat;
 2 import java.util.Calendar;
 3 import java.util.Date;
 4
 5 public class DateRoll {
 6
 7     /**
 8      * Date类型向前向后滚动固定时长
 9      *
10      * @param date
11      *            调整前的时间对象
12      * @param i
13      *            需要滚动哪一个字段,写法: 年->Calendar.YEAR 月->Calendar.MONTH
14      *            日->Calendar.DATE 时->Calendar.HOUR_OF_DAY(24小时制)
15      *            分->Calendar.MINUTE 秒->Calendar.SECOND 毫秒->Calendar.MILLISECOND
16      * @param d
17      *            滚动多少,向前(以前)就用负数,向后(未来)就用正数
18      */
19     public static Date dateRoll(Date date, int i, int d) {
20         // 获取Calendar对象并以传进来的时间为准
21         Calendar calendar = Calendar.getInstance();
22         calendar.setTime(date);
23         // 将现在的时间滚动固定时长,转换为Date类型赋值
24         calendar.add(i, d);
25         // 转换为Date类型再赋值
26         date = calendar.getTime();
27         return date;
28     }
29
30     public static void main(String[] args) {
31         System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
32                 .format(new Date()));
33         System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
34                 .format(dateRoll(new Date(), Calendar.SECOND, 1)));
35     }
36 }

1  java中处理时间的类有2个,一个是大家熟知的java.util.Date类,另一个是java.util.Calendar,那么他们有什么区别呢,在早期的java中并没有Calendar类,后来人们发现了Date类的诸多bug,比如在向前回滚时间的时候,如果是2018-1-2回滚5天就变成了2018-12-28,很明显这是不对的,不过因为java出现早期定下的规定,JDK开发人员并没有直接在Date类里面修改,而是加入了更加完善的Calendar类Calendar经过长时间的实际使用,的确是已经证明它的完备性,Calendar还提供了与Date之间的转换,本文中的滚动方法也是基于这种想法实现的,

转载于:https://www.cnblogs.com/zizaiwuyou/p/Date_roll.html

Java中Date类型如何向前向后滚动时间,( 附工具类)相关推荐

  1. [转载] java 中 date类型详解

    参考链接: Java中的date after()方法 举例: Date的after和before方法解释 Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时 ...

  2. 最新Java中Date类型详解

    一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...

  3. java中Date()类型输入数据的处理

    对于Date类型的数据,需要输入生日存入相应数据库中 private Date birthday;// 生日 package com.pdsu.mybatis.pojo;import java.io. ...

  4. java中date类型如何赋值_Java 中的类型传递问题解惑

    点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 来源: https://blog.biezhi.me/2018/11/java-pass-by-value.html 我之 ...

  5. java中date类型如何赋值_一文读懂java中的Reference和引用类型

    简介 java中有值类型也有引用类型,引用类型一般是针对于java中对象来说的,今天介绍一下java中的引用类型.java为引用类型专门定义了一个类叫做Reference.Reference是跟jav ...

  6. Java里的date类型 加上秒单位后的时间

    //时间加上秒后的时间 日期public static Date timePastTenSecond(Integer second,String otime) {try {SimpleDateForm ...

  7. Java中集合(七)Collections 一个操作集合的工具类

    public static void main(String[] args) {//asList 以列表的形式操作List<String> list = Arrays.asList(&qu ...

  8. java中提供的好用的生成随机数字的工具类(可用来当验证码)

    //验证码位数 是否含有字母 是否含有数字String code=RandomStringUtils.random(4, true, true);System.out.println("验证 ...

  9. java 日期是否合法_java 中 Date 类型快判断日期是否合法.

    // 如果日期不合法,则抛异常try {String date_str = 5555-22-33;SimpleDateFormat format=new SimpleDateFormat(yyyy-M ...

最新文章

  1. Vue 踩坑之旅(1)
  2. 启动ubuntu什么时候按shift_找回消失的ubuntu启动选项
  3. golang中的文件读写
  4. SharePoint 2013 图文开发系列之创建内容类型
  5. 第二次作业动手动脑的解答
  6. 2021爱分析・区域性银行数字化实践报告
  7. 怎么让电脑微信安装到别的盘路径
  8. ZTD 简单做十个好习惯总结
  9. 学云计算能从事哪些岗位 未来职业发展是什么样
  10. java递归查询分类及分类下所有子分类
  11. x265-10bit的配置
  12. 实现对文件夹进行加密
  13. Mooc里面几门重点大学的C++课程的简单评价_拔剑-浆糊的传说_新浪博客
  14. corelDRAW视频教程
  15. ARCGIS怎么在地图上绘制长宽500m*500m的fishnet
  16. 老调重弹,Android Studio 打包H5项目(2020版)
  17. qq影音hd+android,QQ影音HD音乐播放器
  18. 【百度​Sugar BI​ - 自动分析】你负责准备数据,我负责生成报表题
  19. Jmeter阶梯式加压的方式
  20. java 书 例子_刚学了java中的方法,看了书本的例子不会做,求大神做出来研究下...

热门文章

  1. 趣图 | 要不回家考个公务员吧
  2. JavaScript高级程序设计 第12章 DOM2 和 DOM3
  3. 你是如何理解 HTML 语义化的?
  4. Python 判断今天是今年的第几天?
  5. realsense R200转成costmap_2d
  6. Java太卷了,会Java的人都烂大街了!Java培训能找到工作吗?
  7. DS_2010_选择
  8. 医疗时鲜(Running)资讯(ZSSURE):谈谈“reMed,重构医疗生态”大会
  9. JMeter Logic Controller(逻辑控制器)之 ForEach Controller(循环控制器)
  10. 无线网卡无信号无服务器,教你解决无线网卡驱动不见,WIFI无信号的问题 看完你学会了么...