天天看點

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));

  }
}