今天在做項目時,遇到了對時間的加減進行操作需求,根據傳入的日期字符串,操作參數("+","-"),加數(要操作的天數),對日期進行加減操作,經過查詢資料,自己寫了一個Demo測試類,經過調試可以正常加減,現將代碼分享如下,希望對遇到的朋友們有所幫助!
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));
}
}