日期时间工具类

package com.zxwa.ntmss.process.common.util.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

import com.zxwa.ntmss.process.common.util.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;

import com.zxwa.ntmss.process.common.constants.TableNameConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class DateUtils {
    private static Logger LOG = LoggerFactory.getLogger(DateUtils.class);

    public static long MIX_TIMESTAMP=283968000l;

    public static long MAX_TIMESTAMP=92233720368l;

    public static  String FORMAT_HOUR="yyyyMMddHH0000";

    /**
     * 方法名:getLastDay
     * 描述:获取昨天数据
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:32
     * 历史:
     *      2018/1/16 16:32,,创建
     */
    public static String getLastDay(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMMdd");
        return date;
    }

    /**
     * 方法名:getDay
     * 描述:获取今天日期
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:32
     * 历史:
     *      2018/1/16 16:32,,创建
     */
    public static String getDay(){
        Calendar calendar = Calendar.getInstance();
        String date=DateFormatUtils.format(calendar, "yyyyMMddHHmmss");
        return date;
    }
    /**
     * 方法名:getLastDayWeek
     * 描述:获取昨天是一年中的第一周
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:32
     * 历史:
     *      2018/1/16 16:32,,创建
     */
    public static String getLastDayWeek(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyww");
        return date;
    }

    public static String getLastDayWeekNoformat(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyw");
        return date;
    }
    /**
     * 方法名:getLastDayMon
     * 描述:获取昨天的月份
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:33
     * 历史:
     *      2018/1/16 16:33,,创建
     */
     public static String getLastDayMon(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMM");
        return date;
    }
    /**
     * 方法名:getLastDayYear
     * 描述:获取昨天的年份
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:33
     * 历史:
     *      2018/1/16 16:33,,创建
     */
    public static String getLastDayYear(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyy");
        return date;
    }
    /**
     * 方法名:getLastMonDay
     * 描述:获取上个月的今天日期
     * 参数:
     * @param
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:33
     * 历史:
     *      2018/1/16 16:33,,创建
     */
    public static String getLastMonDay(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMMdd");
        return date;
    }
    /**
     * 方法名:getLastNDayBefore
     * 描述:获取N天前的日期
     * 参数:
     * @param n
     * @return java.lang.String
     * 作者:-
     * 日期:2018/1/16 16:34
     * 历史:
     *      2018/1/16 16:34,,创建
     */
    public static String getLastNDayBefore(int n){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -n);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMMdd");
        return date;
    }

    public static String getLastMonMon(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMM");
        return date;
    }

    public static String getLastMonYear(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyy");
        return date;
    }

    public static String getLastYearDay(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE, -1);// 日期减1
        calendar.add(Calendar.YEAR, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMMdd");
        return date;
    }

    public static String getLastYearMon(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyyMM");
        return date;
    }


    public static String formatDataDay(String str){
        if(!StringUtils.isEmpty(str)&&str.length()>8){
            return str.substring(0,8);
        }else{
            return "19790101";
        }
    }

    public static String getLastYear(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyy");
        return date;
    }


    public static String formatNoFormatDate(String str){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR, -1);// 日期减1
        String date=DateFormatUtils.format(calendar, "yyyy");
        return date;
    }
    public static String unixTimeFormat(int unixtime) {
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        String datetime = format.format(unixtime * 1000l);
        return datetime;
    }

    public static String unixTimeFormat(long unixtime,String pattern) {
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        String datetime = format.format(new Date(unixtime * 1000));
        return datetime;
    }


    public static long date2Stamp(String date) {
        if(StringUtils.isEmpty(date)){
            return TableNameConstants.MAX_STAMP;
        }
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        if(date.length()==8){
            format = new SimpleDateFormat("yyyyMMdd");
        }
        format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        long datetime=0;
        try {
            datetime = format.parse(date).getTime()/1000;
        } catch (ParseException e) {
            datetime=new Date().getTime()/1000;
            LOG.error(date+" 时间无法转为时间戳,采用当前时间戳"+datetime);
        }
        return datetime;
    }

    public static long formatDate2Stamp(String date) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        long datetime=0;
        try {
            datetime = format.parse(date).getTime()/1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datetime;
    }

    public static long formatDateNo2Stamp(String date) {
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        long datetime=0;
        try {
            datetime = format.parse(date).getTime()/1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return datetime;
    }

    public static String formatDate2Noformat(String date) {
        if(StringUtils.isEmpty(date)){
            return "";
        }
        return date.replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "");
    }

    public static String repairTimeYYYYMMDDHHMMSS(String date){
        if(StringUtils.isEmpty(date)){
            return "";
        }
        if(date.contains("-")||date.contains(":")){
            date=date.replaceAll("-","");
            date=date.replaceAll(":","");
            date=date.replaceAll(" ","");
        }
        if(date.length()==8){
            return date+"000000";
        }else if(date.length()==10){
            return date+"0000";
        }else if(date.length()==12){
            return date+"00";
        }
        return date;
    }
}
故乡明
原文地址:https://www.cnblogs.com/luweiweicode/p/14892830.html