今天在做项目时,遇到了对时间的加减进行操作需求,根据传入的日期字符串,操作参数("+","-"),加数(要操作的天数),对日期进行加减操作,经过查询资料,自己写了一个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));
}
}