今天我在项目中需要拿到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";
}