天天看点

Java 中对日期进行加减操作

package com.ltw.test;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class Test {

  @SuppressWarnings("deprecation")
  public static void main(String[] args) {

    //根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作
    String dateStr = "2020-03-26 18:20:23";

    // 转化原时间的的格式(发现用带'-'的字符串进行Date.parse() 时会报错,经过这样替换可以实现)
    String str = dateStr.replace("-", "/");

    // 加减时间类型
    String operator = "+";

    // 加减的天数
    Integer i = 20;

    // 定义变量接收转化的时间值
    long j = 0;
    Date date = null;

    try {
      j = Date.parse(str);
      date = new Date(j);
    } catch (Exception e) {
      e.printStackTrace();
    }
    GregorianCalendar gc = new GregorianCalendar();
    gc.setTime(date);

    if ("+".equals(operator)) {
      gc.add(GregorianCalendar.DATE, i);

    } else if ("-".equals(operator)) {
      gc.add(GregorianCalendar.DATE, (-i));
    }

    Date a = gc.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    System.out.println(sdf.format(a));

  }
}