package com.lst.lc.utils; import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class JspUtil { private static final long ONE_MINUTE = 60000L; private static final long ONE_HOUR = 3600000L; private static final long ONE_DAY = 86400000L; private static final long ONE_WEEK = 604800000L; private static final String ONE_SECOND_AGO = "秒前"; private static final String ONE_MINUTE_AGO = "分钟前"; private static final String ONE_HOUR_AGO = "小时前"; private static final String ONE_DAY_AGO = "天前"; private static final String ONE_MONTH_AGO = "月前"; private static final String ONE_YEAR_AGO = "年前"; public static String format(Date date) { long delta = new Date().getTime() - date.getTime(); if (delta < 1L * ONE_MINUTE) { long seconds = toSeconds(delta); return (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO; } if (delta < 45L * ONE_MINUTE) { long minutes = toMinutes(delta); return (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO; } if (delta < 24L * ONE_HOUR) { long hours = toHours(delta); return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO; } if (delta < 168L * ONE_HOUR) { long days = toDays(delta); return (days <= 0 ? 1 : days) + ONE_DAY_AGO; } else { return DateUtils.getDateString(date); } } private static long toSeconds(long date) { return date / 1000L; } private static long toMinutes(long date) { return toSeconds(date) / 60L; } private static long toHours(long date) { return toMinutes(date) / 60L; } private static long toDays(long date) { return toHours(date) / 24L; } private static long toMonths(long date) { return toDays(date) / 30L; } private static long toYears(long date) { return toMonths(date) / 365L; } public static String formatForImage(String date) throws Exception{ return format(formatString(getStrTime(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; } public static String formatDate(Date date) { String result = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 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); } public static Date formatString(String str) throws Exception { if ((str == null) || (str.equals(""))) { return null; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 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 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; } /** * 保留两位小数 * * @param str * @return */ public static String cutLength(String str) { if ((str == null) || (str.length() == 0)) return String.valueOf(0); char[] ch = str.toCharArray(); for (int i = 0; i < ch.length; i++) { if (ch[i] == '.') { if (i + 3 <= ch.length) return str.substring(0, i + 3); else return str.substring(0, ch.length); } } return String.valueOf(0); } /** * 保留4位小数 * * @param str * @return */ public static String cutLength4(String str) { if ((str == null) || (str.length() == 0)) return String.valueOf(0); char[] ch = str.toCharArray(); for (int i = 0; i < ch.length; i++) { if (ch[i] == '.') { if (i + 5 <= ch.length) return str.substring(0, i + 5); else return str.substring(0, ch.length); } } return String.valueOf(0); } public static String getFileType(String fileName) { int index = fileName.lastIndexOf("."); return fileName.substring(index + 1); } public static String urlEncode(String url) { return URLEncoder.encode(url); } }