java实现在原有日期时间上加几个月或几天

目录
  • 如何在原有日期时间上加几个月或几天
    • 在原有的时间上添加几个月
    • 在原有的时间上添加几天
  • 在日期加上特定的天数或者时间
    • 附Calendar 字段说明
    • !!!特别提醒

如何在原有日期时间上加几个月或几天

在原有的时间上添加几个月

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
Date date = new Date();
System.out.println(df.format(date));   // 当前系统时间        
Date newDate = stepMonth(date, 1);
System.out.println("当前时间前1个月的日期:" + df.format(newDate));
 
 
public static Date stepMonth(Date sourceDate, int month) {
    Calendar c = Calendar.getInstance();
    c.setTime(sourceDate);
    c.add(Calendar.MONTH, month);
 
    return c.getTime();
}

在原有的时间上添加几天

public static void main(String[] args) throws ParseException {
    String time = "2019-6-02 11:05:51";    //当前时间
    int num = 15;    //加的天数
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date  currdate = format.parse(time);
    System.out.println("初始的时间是:" + time);
    Calendar ca = Calendar.getInstance();
        ca.setTime(currdate);
    ca.add(Calendar.DATE, num);
    currdate = ca.getTime();
    String enddate = format.format(currdate);
    System.out.println("增加天数以后的时间:" + enddate);
 
}

在日期加上特定的天数或者时间

在日常项目中,经常会遇到需要在当前日期加上特定的天数作为新的日期,比如:

  • 会员充值
  • N天之前的日期
public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String nowDateString = "2019-05-06 13:34:25";
        System.out.println("当前时间为:" + nowDateString);
        try {
            Date sourceDate = sdf.parse(nowDateString);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sourceDate);
            calendar.add(Calendar.DATE,-5);
            Date targetDate = calendar.getTime();
            System.out.println("减去5天后的日期:"+sdf.format(targetDate));

        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

附Calendar 字段说明

  • YEAR 当前年份
  • MONTH 当前月份( 注:初始值是从0开始,所以得到的比实际月份小1月)
  • DATE 一个月中的某天
  • WEEK_OF_YEAR 当前年中的第几个星期
  • WEEK_OF_MONTH 当前月中的第几个星期
  • DAY_OF_MONTH 一个月中的第几天
  • DAY_OF_YEAR 一年中的第几天
  • DAY_OF_WEEK 一个星期中的第几天
  • DAY_OF_WEEK_IN_MONTH 当前月中的第几个星期(注:当前月第1-7天是第一个星期,8-14是第二个星期,以此类推)
  • HOUR_OF_DAY 一天中的第几个小时
  • MINUTE 一小时中的第几分钟
  • SECOND 一分钟中的第几秒
  • MILLISECOND 一秒中的第几毫秒

!!!特别提醒

calendar.add(Calendar.DAY_OF_MONTH,1);  
calendar.add(Calendar.DAY_OF_YEAR,1);  
calendar.add(Calendar.DATE,1); 

这几行代码返回的结果是一样的,都是将日期+1

就没有区别说是在月的日期中加1还是年的日期中加1

但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1

将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现

  • DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
  • Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。

同样,还有DAY_OF_WEEK,用来获得当前日期是一周的第几天

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java 日期格式加上指定月数(一个期限)得到一个新日期的实现代码

    下面一段实例代码给大家介绍java日期格式加上指定月数得到一个新日期,具体代码如下所示: public static Date getnewDate(Date olddate, String recordDate) throws ParseException { Date date = olddate; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String data = format.format(da

  • Java对日期Date类进行加减运算、年份加减月份加减、时间差等等

    实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTestUtil { public static void main(String[] args) throws Exception { SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); String str=&

  • java calendar 日期实现不断加一天的代码

    我就废话不多说了,大家还是直接看代码吧~ Calendar cc=Calendar.getInstance();//获得系统时间 cc.add(cc.DATE, 1);//让日子每天向后加一天 date=cc.getTime(); //这个时间就是系统时间加一天后的 补充知识:Java中对日期进行增加天数.月数.年 有时我们需要对时间数据进行处理,比如日期增加一天,增加一个月,下面是代码: import java.util.Date; int Day = 1; Calendar calendar

  • Java日期时间类及计算详解

    目录 1. Java中与日期相关的类 1.1 java.util包 ① Date类 ② Calendar 日历类 roll 设置Calendar的容错性 set 1.2 java.time包 ① LocalDate 本地日期类 ② LocalTime 本地时间类 ③ LocalDateTime 本地日期时间类 ④ Instant 类 ⑤ Period 类 ⑥ Duration 类 2. 时间间隔计算 2.1 Period与Duration类 2.1.1 Duration 2.1.2 Period

  • java实现在原有日期时间上加几个月或几天

    目录 如何在原有日期时间上加几个月或几天 在原有的时间上添加几个月 在原有的时间上添加几天 在日期加上特定的天数或者时间 附Calendar 字段说明 !!!特别提醒 如何在原有日期时间上加几个月或几天 在原有的时间上添加几个月 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Date date = new Date(); System.out.println(df.format(da

  • Java使用DateFormatter格式化日期时间的方法示例

    本文实例讲述了Java使用DateFormatter格式化日期时间的方法.分享给大家供大家参考,具体如下: Java版本:1.8开始 import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; /** * Created by Fra

  • Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年

    计算年.月.日需要安装组件包 pip install python-dateutil 当前日期时间 import datetime print datetime.datetime.now() # 2018-05-08 16:53:30.101000 格式化时间 import datetime print datetime.datetime.now().strftime("%Y-%m-%d %H:%M") # 2018-05-08 16:54 多加一天 import datetime p

  • Java计算两个日期时间之间的天数最简方法

    有一种low的方式,就是你把两个时间都换成秒,然后除以一天的秒数,然后向上取整,就是算的天数.但是这么实现太low啦. jdk有高级的API,我们为啥还要自己去实现呢,问题就是我们不知道. 所以,我在这写个笔记,记录下,jdk 1.8 是怎么做的. /** * 计算两个时间点之间的天数 */ private static void getBetweenDay() { LocalDate start = LocalDate.of(2018, 2, 12); LocalDate now = Loca

  • java日期时间操作工具类

    本文实例为大家分享了java日期时间操作工具类,供大家参考,具体内容如下 虽然jdk1.8开始,加入了time包,里面对时区,本地化时间,格式化,以及时间等做了很好的封装,但仍然要写一个工具类.大家看着用.应该没有bug.如果发现了,请您一定告知,互相学习!好了,上代码: package com.wdy.tools.utils.timeutil; import java.text.DateFormat; import java.text.SimpleDateFormat; import java

  • Java使用DateTimeFormatter格式化输入的日期时间

    要求: 用DateTimeFormatter实现: 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间 分析: 1.时间的常用格式为: xxxx-xx-xx xx:xx xxxx/xx/xx xx:xx xxxx.xx.xx xx:xx 等格式 2.微信显式时间格式为: 今天显式: 00:01 - 23:59 ; 昨天显式: 昨天 01:01 ; 前天显式: 周几

  • Java日期时间类(Date、DateFormat、Calendar)解析

    目录 Date类 概述 常用方法 DateFormat类 构造方法 格式规则 常用方法 format方法 parse方法 练习 Calendar类 概念 获取方式 常用方法 get/set方法 add方法 getTime方法 Date类 概述 java.util.Date类 表示特定的瞬间,精确到毫秒. 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象. public Date():分配Date对象并初始化此对象,以表示

  • Java日期时间使用方法汇总

    一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中,操作日期主要涉及到一下几个类:  1.java.util.Date         类 Date 表示特定的瞬间,精确到毫秒.从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的把日期解释为年.月

  • Java核心教程之常见时间日期的处理方法

    Java日期处理类Date详解 时间的基础知识 时区:整个地球分为二十四时区,每个时区都有自己的本地时间. 为了统一起见,使用一个统一的时间,称为全球标准时间(UTC,Universal Time Coordinated). TC与格林尼治平均时(GMT,Greenwich Mean Time,也翻译成:格林威治标准时间)差不多一样 CST(北京时间),北京时间,China standard Time,中国标准时间.在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8. 时间戳:自197

随机推荐