今天我在项目中需要拿到20天以前的日期,我是这样处理的:
/** * 日期加减。 * @param base 基础日期 * @param days 增加天数(减天数则用负数) * @return 计算结果 */ public static Date datePlus(Date base, int days) { Calendar cal = Calendar.getInstance(); cal.setTime(base); cal.add(Calendar.DATE, days); return cal.getTime(); }
得到日期对象后,再转化为字符串格式
/** * 将日期转换成指定格式的字符串。 * @param date 日期 * @param format 输出格式 * @return 日期字符串 */ public static String convDate2Str(Date date, String format) { if (date == null) { return ""; } return DateFormat.format(format, date).toString(); } public class Consts { /** 默认字符集 */ public static final String DEF_CHARSET = "UTF-8"; /** 日期统一格式yyyy-mm-dd */ public static final String DATE_FORMAT = "yyyy-MM-dd"; /** 全局数据用日期格式yyyy/MM/dd */ public static final String GL_DATA_FORMAT_EN = "yyyy/MM/dd"; /** 全局用日期格式yyyy年MM月dd日 */ public static final String GL_DATA_FORMAT = "yyyy年MM月dd日"; /** 全局用日期格式MM月dd日 */ public static final String GL_DATA_FORMAR_YEARMONTH = "MM月dd日"; /** 全局用月日格式(MM/dd) */ public static final String GL_DATA_FORMAR_MONTH_DAY = "MM/dd"; /** 全局用年月格式yyyy年MM月 */ public static final String GL_DATA_MONTH_FORMAT = "yyyy年MM月"; /** 全局时间格式(yyyy-MM-dd HH:mm:ss) */ public static final String GL_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; /** 全局时间戳格式(yyyy-MM-dd HH:mm:ss.SSS) */ public static final String GL_TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS"; }