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