package com.sprucetec.tms.utils;import java.math.BigDecimal;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 時間工具類 * * Title: TmsTimeUtils.java<br> * Description: <br */public class TmsTimeUtils { /** * 根據傳入的時間字符串,得到unix對應的時間戳格式 * * @author liuqiang(liuqang@meicai.cn) * 2016年3月12日 * @param day * @return */ public static Integer getDayUnixTimeStamp(String day) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date date; try { date = df.parse(day); Calendar cal = Calendar.getInstance(); cal.setTime(date); long timestamp = cal.getTimeInMillis(); return Integer.valueOf((int) (timestamp / 1000)); } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 將日期轉換爲 時間戳 * @author yangweiqiang 2016.12.01 * @param date * @return */ public static Integer getDayUnixTimeStamp(Date date){ DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String day = df.format(date); return getDayUnixTimeStamp(day); } /** * 獲取當天日期的unix時間戳 * * @author liuqiang(liuqiang@meicai.cn) * 2016年3月12日 * @return */ public static Integer getTodayUnixTimeStamp() { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); String day = df.format(date); return getDayUnixTimeStamp(day); } /** * 得到當前系統時間戳 * @author liuqiang(liuqiang@meicai.cn) * 2016年3月20日 * @return */ public static Integer getNowTimeStamp() { Integer now = 0; Long time = System.currentTimeMillis() / 1000; now = time.intValue(); return now; } /** * 描述: 將秒轉換爲指定格式化的日期 * @author yangweiqiang * @param timeStamp 秒數 * @param format 格式化 yyyy-MM-dd等 * @date 2016/8/15 */ public static String getFormatDate(Integer timeStamp,SimpleDateFormat format){ return format.format(new Date(timeStamp * 1000L)); } /** * 獲取某月最大的天數 * @author yangweiqiang * @param time 日期 * @param format 日期格式化類型 * @date 2016/8/3 * @return 實際最大天數 */ public static int getMaxDayOfMonth(String time,SimpleDateFormat format){ try { Date date = format.parse(time); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); } catch (ParseException e) { e.printStackTrace(); } return 0; } /** * 獲取昨天的時間戳 * @return */ public static int getPreDayByToday(Integer days){ return getTodayUnixTimeStamp() + 86400 * days; } /** * 獲取指定天的推遲天時間戳 * @param time * @param days * @return */ public static int getPreDayBy(Integer time,Integer days){ return time + 86400 * days; } /** * 獲取指定天的推遲天時間戳 * @param time * @param days 增長的天數 * @return */ public static int getPreDayBy(String time,Integer days){ return getDayUnixTimeStamp(time) + 86400 * days; } /** * 根據時間戳獲取日期(此日期爲幾號) * @param date * @return */ public static int getDayBy(Integer date){ Calendar cal = Calendar.getInstance(); cal.setTime(new Date((long)date * 1000)); return cal.get(Calendar.DAY_OF_MONTH); } /** * 獲取上個月第一天的Unix時間戳 */ public static Integer getLastMonthFirstDayUnixTimeStamp() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.MONTH, -1); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); Date lastMonthFirstDay = cal.getTime(); return TmsTimeUtils.getDayUnixTimeStamp(lastMonthFirstDay); } /** * 獲取上個月最後一天的Unix時間戳 */ public static Integer getLastMonthLastDayUnixTimeStamp() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.MONTH, -1); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); Date lastMonthLastDay = cal.getTime(); return TmsTimeUtils.getDayUnixTimeStamp(lastMonthLastDay); } /** * 獲取本月第一天的Unix時間戳 */ public static Integer getThisMonthFirstDayUnixTimeStamp() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); Date thisMonthFirstDay = cal.getTime(); return TmsTimeUtils.getDayUnixTimeStamp(thisMonthFirstDay); } public static void main(String[] args) {// System.out.println(TmsTimeUtils.getDayUnixTimeStamp("2016-03-12"));// System.out.println(TmsTimeUtils.getTodayUnixTimeStamp()); System.out.println(getLastMonthFirstDayUnixTimeStamp()); System.out.println(getLastMonthLastDayUnixTimeStamp()); System.out.println(getThisMonthFirstDayUnixTimeStamp()); }}