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; } }
日期时间工具类
故乡明