java获取任意指定日期后前后任一一天

来源:互联网 发布:protobuf java v3 编辑:程序博客网 时间:2024/06/03 23:55
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/**@author leixingbang_sx*Mail:leixingbang_sx@qiyi.com*@create 2015/12/23 9:59*desc  日期工具*/public class DateUtils {    /**     * 短格式日期格式化     */    private static final SimpleDateFormat SHORT_YEAR_FORMATOR = new SimpleDateFormat("yy-MM-dd");    /**     * 标准日期格式化     */    private static final SimpleDateFormat CUSTOM_DAY_FORMATOR = new SimpleDateFormat("yyyy-MM-dd");    /**     * 标准日期时间格式化     */    private static final SimpleDateFormat CUSTOM_DAYTIME_FORMATOR = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    /**     * 获得指定日期的前一天     *     * @param specifiedDay 指定日期     * @return 前一天     */    public static Date getSpecifiedDayBefore(String specifiedDay) {       return getDate(specifiedDay, -1);    }    /**     * 获得指定日期的后一天     *     * @param specifiedDay 指定日期     * @return 后一天     */    public static Date getSpecifiedDayAfter(String specifiedDay) {        return getDate(specifiedDay, 1);    }    private static Date getDate(String specifiedDay, int diffDays) {        Calendar c = Calendar.getInstance();        try {            c.setTime(SHORT_YEAR_FORMATOR.parse(specifiedDay));            c.set(Calendar.DATE, c.get(Calendar.DATE) + diffDays);            return CUSTOM_DAY_FORMATOR.parse(CUSTOM_DAY_FORMATOR.format(c.getTime()));        } catch (ParseException e) {            e.printStackTrace();            return null;        }    }    /**     * 将string类型的日期转化为date类型 例如输出"2014-12-23" 则转化为对应Date为"2014-12-23 00:00:00"     * @param specifiedDay 指定String类型的日期     * @return 日期     */    public static Date parseDayStrToDate(String specifiedDay)    {        try {            return CUSTOM_DAY_FORMATOR.parse(specifiedDay);        } catch (ParseException e) {            e.printStackTrace();            return null;        }    }    /**     * 将指定的日期转化为String类型     * @param date 日期     * @return 格式化后字符串     */    public static String parseDateToStr(Date date) {        return CUSTOM_DAYTIME_FORMATOR.format(date);    }    public static void main(String[] args) {    }}

0 0