package com.base.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import com.amarsoft.are.ARE; public class DateUtil { public final static String FULL_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS"; public final static String TIME_MONTH = "MONTH"; public final static String TIME_DAY = "DAY"; public final static String TIME_YEAR = "YEAR"; public static void main(String[] args) throws InterruptedException { System.out.println(timeStamp()); Thread.sleep(1000*5); System.out.println(timeStamp(new Date())); Thread.sleep(1000*5); System.out.println(timeStamp(getDateTime(new Date()), "yyyy-MM-dd HH:mm:ss")); } /** * 取得当前时间戳(精确到秒) * * @return */ public static String timeStamp() { long time = System.currentTimeMillis(); String t = String.valueOf(time / 1000); return t; } public static String timeStamp(String dateStr, String format) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); return String.valueOf(sdf.parse(dateStr).getTime() / 1000); } catch (Exception e) { System.out.println(e); e.printStackTrace(); } return ""; } public static String timeStamp(Date date) { return timeStamp(getDateTime(date), "yyyy-MM-dd HH:mm:ss"); } public static int getIntervalDays(Date startDate, Date endDate) { if ((null == startDate) || (null == endDate)) { return -1; } long intervalMilli = (endDate.getTime() - startDate.getTime()); return (int) (intervalMilli / (24 * 60 * 60 * 1000)); } @SuppressWarnings("static-access") public static String getNexMonthDate(Date date, int iInterval, String returnForMat) { Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.MONTH, iInterval);// 把日期往后增加一个月.整数往后推,负数往前移动 date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 String sDate = DateUtil.getSystemTimeByFormat(date, returnForMat); return sDate; } public static int daysOfTwo(Date startDate, Date endDate) { Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(startDate); int day1 = aCalendar.get(Calendar.DAY_OF_YEAR); aCalendar.setTime(endDate); int day2 = aCalendar.get(Calendar.DAY_OF_YEAR); return day2 - day1; } public static int getMonthSpace(String date1, String date2) throws ParseException { int result = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(sdf.parse(date1)); c2.setTime(sdf.parse(date2)); result = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH); return result + (c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR)) * 12; } public static String addDate(Date startDate, String type, Integer num) { Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(startDate); if (type.equalsIgnoreCase(DateUtil.TIME_DAY)) { aCalendar.add(Calendar.DAY_OF_YEAR, num); } else if (type.equalsIgnoreCase(DateUtil.TIME_MONTH)) { aCalendar.add(Calendar.MONTH, num); } else { aCalendar.add(Calendar.YEAR, num); } return DateUtil .getSystemTimeByFormat(aCalendar.getTime(), "yyyy-MM-dd"); } public static String addDate(String startDate, String type, Integer num) { Date dateStart = getTimeByFormat(startDate, "yyyy-MM-dd"); return addDate(dateStart, type, num); } public static Date getEndDateByDays(Date startDate, int days) { Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(startDate); aCalendar.add(Calendar.DAY_OF_YEAR, days); return aCalendar.getTime(); } public static String getSystemDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new Date()); } public static String getSystemDateTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(new Date()); } public static String getSystemDateDetailTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:sss"); return sdf.format(new Date()); } public static String getDateTime(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (null == date) { date = new Date(); } return sdf.format(date); } /** * @param dateFormat * 输出日期格式,形如:yyyy-MM-dd HH:mm:ss * @return 格式化后的日期字符串 */ public static String getSystemTimeByFormat(String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); return sdf.format(new Date()); } public static String getSystemTimeByFormat(Date date, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); return sdf.format(date); } public static String getTimeAllByFormat(String dateFormat) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dateFormat); DateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); return format.format(date); } /** * @param dateStr * 日期字符串,形如:yyyy-MM-dd HH:mm:ss * @param dateFormat * 输出日期格式,形如:yyyy-MM-dd HH:mm:ss * @return 格式化后的日期字符串 */ public static Date getTimeByFormat(String dateStr, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); Date date = null; try { date = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 获取 yyyy-MM-dd 日期 * * @param dateStr * 日期时间字符串 * @param dateFormat * dateStr的字符串格式 * @return ' yyyy-MM-dd '格式日期 */ public static String getFormateDate(String dateStr, String dateFormat) { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); Date date = null; try { date = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } // public static void main(String[] args) { // String date = getSystemTimeByFormat(new Date(), "yyyy/MM/dd HH:mm:ss"); // System.out.println(date); // String[] dateArray = date.split("/"); // System.out.println("year :" + dateArray[0]); // System.out.println("month :" + dateArray[1]); // System.out.println("day :" + dateArray[2]); // } }