package com.lst.lc.utils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.junit.Test; public class DateUtils { public static String getDateString(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } /** * 获取年月日字符串 * * @return */ public static String getDateNum() { Calendar c = Calendar.getInstance(); String year = Integer.toString(c.get(Calendar.YEAR)); String month = Integer.toString(c.get(Calendar.MONTH)); String date = Integer.toString(c.get(Calendar.DATE)); return year + month + date; } /** * 获取年月日时分秒字符串 * * @return */ public static String getSecNum() { Calendar c = Calendar.getInstance(); String year = Integer.toString(c.get(Calendar.YEAR)); String month = Integer.toString(c.get(Calendar.MONTH)); String date = Integer.toString(c.get(Calendar.DATE)); String hour = Integer.toString(c.get(Calendar.HOUR)); String minute = Integer.toString(c.get(Calendar.MINUTE)); String second = Integer.toString(c.get(Calendar.SECOND)); return year + month + date + hour + minute + second; } /** * 将时间按照格式进行转换 * * @param date * 时间 * @param format * 时间格式 * @return */ public static String formatDate(Date date, String format) { String result = ""; SimpleDateFormat sdf = new SimpleDateFormat(format); if (date != null) { result = sdf.format(date); } return result; } /** * 将String时间转换成某时间格式 * * @param str * 时间 * @param format * 格式 * @return * @throws Exception */ public static Date formatString(String str, String format) throws Exception { if ((str == null) || (str.equals(""))) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.parse(str); } /** * 获取当前日期时间,24小时制 * * @return String类型的时间 * @throws Exception */ public static String getCurrentDateStr() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); return sdf.format(date); } public static String getCurrentDate() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(date); } public static String getCurrentDateForShow() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } public static String getCurrentDateMS() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); return sdf.format(date); } /** * 获取当前时间的前一天 * * @return */ public static String getPereviousDayMS() { Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, -1); date = calendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); return sdf.format(date); } /** * 获取距离今日的时间统计 */ public static String getLastTime(String lastTime) { Long lastTimeL = Long.parseLong(lastTime); Long nowTime = new Date().getTime(); Long range = nowTime - lastTimeL; int days = (int) (range / 3600 / 1000 / 24); if (days < 1) { SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String date = sdf.format(new Date(lastTimeL)); return date; } else if (days < 30) { return days + "天前"; } else { return "很久以前"; } } public static String getStrTime(String strTime) { String year = strTime.substring(0, 4); String month = strTime.substring(4, 6); String day = strTime.substring(6, 8); String hour = strTime.substring(8, 10); String minute = strTime.substring(10, 12); String second = strTime.substring(12, 14); return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; } public static Date getDateBefore(Date d, int day) { Calendar now = Calendar.getInstance(); now.setTime(d); now.set(Calendar.DATE, now.get(Calendar.DATE) - day); return now.getTime(); } public static String get30Before(){ Date date = getDateBefore(new Date(), 30); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(date); } public static String getBefore(int day){ Date date = getDateBefore(new Date(), day); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(date); } public static String getBeforeForShow(int day){ Date date = getDateBefore(new Date(), day); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } @Test public void test(){ System.out.println(getCurrentDate()); System.out.println(get30Before()); } }