Utils
来源:互联网 发布:sql server dev 编辑:程序博客网 时间:2024/05/22 03:36
一、map转json
public static <T> String mapToJson(Map<String, T> map) { Gson gson = new Gson(); String jsonStr = gson.toJson(map); return jsonStr;}
二、图片等比例压缩
private static BufferedOutputStream bos; /** * 根据图片url下载到本地 * <p>Title: downLoadByUrl</p> * @param imgUrl 图片地址 * @param location 下载后保存的地址。如"C:\\" * @param imgName 下载后保存的名称。如"a.jpg" * @return Boolean true 成功;false 失败 */ public static Boolean downLoadByUrl(String imgUrl, String location, String imgName) { try { //图片的url if (StringUtils.isEmpty(imgUrl) || StringUtils.isEmpty(location) || StringUtils.isEmpty(imgName)) { return false; } //设置图片下载后的保存位置及图片名称 File file = new File(location, imgName); InputStream inputStream = ImgUtils.getInputStreamByGet(imgUrl); ImgUtils.saveData(inputStream, file); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 等比缩放图片(按高度或宽度) * <p>Title: equalRatioResizeImage</p> * @param srcImgPath 原始照片的磁盘位置 * @param distImgPath 目标照片的磁盘位置 * @param width 宽度(单位像素) 注意:和height只能填一个,都填写默认按宽度计算 * @param height 高度(单位像素) 注意:和width只能填一个,都填写默认按宽度计算 * @return Boolean true 成功;false 失败 */ public static Boolean equalRatioResizeImage (String srcImgPath, String distImgPath, int newWidth, int newHeight){ try { //参数校验 if (StringUtils.isEmpty(srcImgPath) || StringUtils.isEmpty(distImgPath)) { return false; } //获取图片原始尺寸 Image srcFile = ImageIO.read(new File(srcImgPath)); int w = srcFile.getWidth(null); int h = srcFile.getHeight(null); double bili; if(newWidth>0){ bili=newWidth/(double)w; newHeight = (int) (h*bili); }else{ if(newHeight>0){ bili=newHeight/(double)h; newWidth = (int) (w*bili); } } return ImgUtils.resizeImage(srcImgPath, distImgPath, newWidth, newHeight); } catch (Exception e) { e.printStackTrace(); return false; } } /** * 压缩图片(指定尺寸) * <p>Title: resizeImage</p> * @param srcImgPath 原始照片的磁盘位置 * @param distImgPath 目标照片的磁盘位置 * @param width 宽度(单位像素) * @param height 高度(单位像素) * @return Boolean true 成功;false 失败 */ public static Boolean resizeImage (String srcImgPath, String distImgPath, int width, int height){ try { String subfix = "jpg"; subfix = srcImgPath.substring(srcImgPath.lastIndexOf(".")+1,srcImgPath.length()); File srcFile = new File(srcImgPath); Image srcImg = ImageIO.read(srcFile); BufferedImage buffImg = null; if(subfix.equals("png")){ buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); }else{ buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); } Graphics2D graphics = buffImg.createGraphics(); graphics.setBackground(Color.WHITE); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, width, height); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); Image scaledInstance = srcImg.getScaledInstance(width, height, Image.SCALE_SMOOTH); graphics.drawImage(scaledInstance, 0, 0, null); ImageIO.write(buffImg, subfix, new File(distImgPath)); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 通过get请求得到读取器响应数据的数据流 * <p>Title: getInputStreamByGet</p> * @throws IOException * @throws MalformedURLException */ private static InputStream getInputStreamByGet(String url) throws MalformedURLException, IOException { HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); conn.setReadTimeout(5000); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream inputStream = conn.getInputStream(); return inputStream; } return null; } /** * 将服务器响应的数据流存到本地文件 * <p>Title: saveData</p> * @throws IOException */ private static void saveData(InputStream is, File file) throws IOException { BufferedInputStream bis = new BufferedInputStream(is); bos = new BufferedOutputStream(new FileOutputStream(file)); byte[] buffer = new byte[1024]; int len = -1; while ((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len); bos.flush(); } }
三、时间处理
private static Logger logger = Logger.getLogger(DateUtils.class); /** "yyyy-MM-dd HH:mm:ss"格式类型 */ public final static String LONG_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** "yyyy-MM-dd HH:mm"格式类型 */ public final static String MINUTE_PATTERN = "yyyy-MM-dd HH:mm"; /** "yyyyMMddHHmmss"格式类型 */ public final static String SHORT_PATTERN = "yyyyMMddHHmmss"; /** "yyyy-MM-dd"格式类型 */ public final static String PATTERN_THREE = "yyyy-MM-dd"; /** "yyyyMM"格式类型 */ public final static String PATTERN_FOUR = "yyyyMM"; /** "HH:mm:ss"格式类型 */ public final static String SHORTTIME_PATTERN = "HH:mm:ss"; /** 常见日期类型数组 */ public final static String[] normalDateFormatArray = new String[] { "yyyy-MM-dd", "yyyy/MM/dd", "yyyyMMdd" }; /** 分钟类型 */ public static final int MINITE_TYPE = 0; /** 小时类型 */ public static final int HOUR_TYPE = 1; /** 日类型 */ public static final int DAY_TYPE = 2; /** 月类型 */ public static final int MONTH_TYPE = 3; /** 年类型 */ public static final int YEAR_TYPE = 4; public static String formatTime(Date date) { if (null == date) { return ""; } SimpleDateFormat sdf = new SimpleDateFormat(LONG_PATTERN); return sdf.format(date); } public static String formatShortTime(Date date) { if (null == date) { return ""; } SimpleDateFormat sdf = new SimpleDateFormat(SHORTTIME_PATTERN); return sdf.format(date); } public static Date parseDate(String source) { return parseDate(source, PATTERN_THREE); } public static Date parseDate(String source, String pattern) { DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern); return fmt.parseLocalDateTime(source).toDate(); } public static Date parseTime(String source) { DateTimeFormatter fmt = DateTimeFormat.forPattern(LONG_PATTERN); return fmt.parseLocalDateTime(source).toDate(); } /** * 日期类型字符串转换成日期 * * @param strDate * 日期的字符串 * @param pattern * 日期的格式,如:yyyy/MM/dd yyyy-MM-dd yyyy-MM-dd HH:mm:ss. */ public static Date stringToDate(String strDate, String pattern) { if (strDate == null || strDate.trim().length() <= 0) return null; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { return sdf.parse(strDate); } catch (ParseException e) { logger.warn("Parse date error! strDate [" + strDate + "], pattern [" + pattern + "].", e); return null; } } /** * 字符串,不指定格式的转换成日期. * * @param strDate * 日期的字符串 * @return the date 日期类,如:yyyy/MM/dd yyyy-MM-dd yyyy-MM-dd HH:mm:ss. */ public static Date stringToDate(String strDate) { if (strDate == null || strDate.trim().length() <= 0) return null; for (String df : normalDateFormatArray) { SimpleDateFormat sdf = new SimpleDateFormat(df); try { return sdf.parse(strDate); } catch (ParseException e) { continue; } } logger.warn("Parse date error! strDate [" + strDate + "], pattern [yyyy-MM-dd][yyyy/MM/dd][yyyyMMdd]."); return null; } /** * 检验日期字符串,是否为"yyyy-MM-dd"格式 * * @param strDate * 日期字符串 * @return true 是 */ public static boolean checkDate(String strDate) { if (strDate == null || strDate.length() == 0) return true; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); sdf.parse(strDate); } catch (ParseException e) { logger.info("Wrong strDate [" + strDate + "], pattern [yyyy-MM-dd]."); return false; } return true; } /** * 日期类转换成指定日期格式的字符串 * * @param date * 日期 * @param pattern * 日期格式 * @return the string 日期字符串 */ public static String dateToString(Date date, String pattern) { if (date == null) return null; SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(date); } /** * 对日期的【秒】进行加 * * @param date * 日期 —— new Date() * @param addSeconds * 需要对【秒】进行加减的天数 * @return the date 增/减几秒后的日期 */ public static Date dateAddSeconds(Date date, int addSeconds) { DateTime dateTime = new DateTime(date); return dateTime.plusSeconds(addSeconds).toDate(); } /** * 对日期的【分】进行加 * * @param date * 日期 —— new Date() * @param addMinutes * 需要对【分】进行加减的天数 * @return the date 增/减几分后的日期 */ public static Date dateAddMinutes(Date date, int addMinutes) { DateTime dateTime = new DateTime(date); return dateTime.plusMinutes(addMinutes).toDate(); } /** * 对日期的【小时】进行加 * * @param date * 日期 —— new Date() * @param addMinutes * 需要对【小时】进行加减的天数 * @return the date 增/减几小时后的日期 */ public static Date dateAddHours(Date date, int addHours) { DateTime dateTime = new DateTime(date); return dateTime.plusHours(addHours).toDate(); } /** * 对日期的【日】进行加 * * @param date * 日期 —— new Date() * @param addDays * 需要对【日】进行加减的天数 * @return the date 增/减几天后的日期 */ public static Date dateAddDays(Date date, int addDays) { DateTime dateTime = new DateTime(date); return dateTime.plusDays(addDays).toDate(); } /** * 对日期的【月】进行加 * * @param date * 日期 —— new Date() * @param addMonths * 需要对【月】进行加减的天数。 * @return the date 增/减几【月】后的日期 */ public static Date dateAddMonths(Date date, int addMonths) { if (date == null) return null; Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, addMonths); return cal.getTime(); } /** * 对日期的【周】进行加 * * @param date * 日期 —— new Date() * @param addWeeks * 需要对【周】进行加减的天数。 * @return the date 增/减几【周】后的日期 */ public static Date dateAddWeeks(Date date, int addWeeks) { if (date == null) return null; Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.WEEK_OF_YEAR, addWeeks); return cal.getTime(); } /** * 对日期的【年】进行加 * * @param date * —— new Date() * @param addYears * 需要对【年】进行加减的天数。 * @return the date 增/减几【年】后的日期 */ public static Date dateAddYears(Date date, int addYears) { if (date == null) return null; Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, addYears); return cal.getTime(); } /** * 计算两个日期之间的间隔时间 * * @param beginDate * 起始日期 * @param endDate * 结束日期 * @return the date length 间隔时间 */ public static int getDateLength(Date beginDate, Date endDate) { int length = 0; if (beginDate == null || endDate == null) return length; length = (int) ((endDate.getTime() - beginDate.getTime()) / (1000 * 60 * 60 * 24)); length++; return length; } /** * 获取某天的起始时间 * * @param strDateSegment * 字符串类型的日期 * @return the date begin 字符串类型的日期 + " 00:00:00" */ public static String getDateBegin(String strDateSegment) { if (strDateSegment == null || strDateSegment.length() <= 0) return null; return strDateSegment + " 00:00:00"; } /** * 获取某天的结束时间 * * @param strDateSegment * 字符串类型的日期 * @return the date end 字符串类型的日期 + " 23:59:59" */ public static String getDateEnd(String strDateSegment) { if (strDateSegment == null || strDateSegment.length() <= 0) return null; return strDateSegment + " 23:59:59"; } /** * 检查录入的日期格式(yyyyMMdd-yyyyMMdd或yyyyMMdd). * * @param strDate * 待检验的日期字符串 * @return true, if successful */ public static boolean checkLongDatePattern(String strDate) { String ps = "^\\d{4}\\d{1,2}\\d{1,2}-\\d{4}\\d{1,2}\\d{1,2}$|^\\d{4}\\d{1,2}\\d{1,2}$"; Pattern p = Pattern.compile(ps); Matcher m = p.matcher(strDate); if (!m.matches()) { return false; } return true; } /** * 检查录入的日期格式(yyyy-MM-dd). * * @param strDate * 待检验的日期字符串 * @return true, if successful */ public static boolean checkDatePattern(String strDate) { String ps = "^\\d{4}-\\d{1,2}-\\d{1,2}$"; Pattern p = Pattern.compile(ps); Matcher m = p.matcher(strDate); if (!m.matches()) { return false; } return true; } /** * 检查和格式化日期 param:strDate 如:2007-06-01--2007-12-01, * 2007-06-18,20070601--20071201,20070718. return:HashMap * 格式化以后的date对象:beginDate和endDate throws ParseException 输入的日期格式错误 * * @param strDate * the str date * @return the list * @throws ParseException * 输入的日期格式错误 */ public static List<Date> transformStrDateToListDate(String strDate) throws ParseException { List<Date> dateList = new ArrayList<Date>(); String[] tempStrDate = strDate.split(","); for (int i = 0; i < tempStrDate.length; i++) { // 将字符串格式化为“yyyy-MM-dd--yyyy-MM-dd” Date tempDate = stringToDate(tempStrDate[i], "yyyy-MM-dd"); dateList.add(tempDate); } return dateList; } /** * 检查和格式化日期 param:strDate * 如:2007-06-01--2007-12-01,2007-06-18,20070601--20071201,20070718 * return:HashMap 格式化以后String型的日期:beginDate和endDate throws ParseException * 输入的日期格式错误 * * @param strDate * the str date * @return the hash map * @throws ParseException * he parse exception */ public static HashMap<String, String> formatStrDateToDateMap(String strDate) throws ParseException { HashMap<String, String> dateMap = new HashMap<String, String>(); Date beginDate = null; Date endDate = null; if (strDate == null || strDate.trim().length() == 0) return null; if (strDate.indexOf("--") > 0) { String[] tempDate = strDate.split("--"); if (tempDate.length == 2) { if (tempDate[0].indexOf("-") > 0) { beginDate = stringToDateThrowsExe(tempDate[0], "yyyy-MM-dd"); } else { beginDate = stringToDateThrowsExe(tempDate[0], "yyyyMMdd"); } if (tempDate[1].indexOf("-") > 0) { endDate = stringToDateThrowsExe(tempDate[1], "yyyy-MM-dd"); } else { endDate = stringToDateThrowsExe(tempDate[1], "yyyyMMdd"); } } else if (tempDate.length == 1) { if (tempDate[0].indexOf("-") > 0) { beginDate = stringToDateThrowsExe(tempDate[0], "yyyy-MM-dd"); endDate = stringToDateThrowsExe(tempDate[0], "yyyy-MM-dd"); } else { beginDate = stringToDateThrowsExe(tempDate[0], "yyyyMMdd"); endDate = stringToDateThrowsExe(tempDate[0], "yyyyMMdd"); } } } else { if (strDate.indexOf("-") > 0) { beginDate = stringToDateThrowsExe(strDate, "yyyy-MM-dd"); endDate = stringToDateThrowsExe(strDate, "yyyy-MM-dd"); } else { beginDate = stringToDateThrowsExe(strDate, "yyyyMMdd"); endDate = stringToDateThrowsExe(strDate, "yyyyMMdd"); } } dateMap.put("beginDate", dateToString(beginDate, "yyyy-MM-dd")); dateMap.put("endDate", dateToString(endDate, "yyyy-MM-dd")); return dateMap; } /** * String to date throws exe. * * @param strDate * the str date * @param pattern * the pattern * @return the java.util. date * @throws ParseException * the parse exception */ public static Date stringToDateThrowsExe(String strDate, String pattern) throws ParseException { if (strDate == null || strDate.trim().length() <= 0) return null; SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.parse(strDate); } /** * 检查日期的先后顺序 param:beginDate endDate return:boolean boolean * beginDate<=endDate 返回true;beginDate>endDate返回false * * @param beginDate * the begin date * @param endDate * the end date * @return true, if successful */ public static boolean compareDate(String beginDate, String endDate) { if (endDate == null || endDate.trim().length() == 0) endDate = beginDate; Date bDate = stringToDate(beginDate, "yyyy-MM-dd"); Date eDate = stringToDate(endDate, "yyyy-MM-dd"); if (bDate == null || eDate == null) return true; if (!bDate.after(eDate)) return true; return false; } /** * 检查输入的日期字符串中的重复日期 param:strDate * 格式如:2007-06-01--2007-12-01,2007-06-18,20070601--20071201,20070618 * return:list 字符串日期列表 * * @param strDate * the str date * @return the list * @throws ParseException * the parse exception */ public static List<String> checkRepeatDate(String strDate) throws ParseException { List<String> repeatDateList = new ArrayList<String>(); Map<Date, String> mediaPlanDateMap = new HashMap<Date, String>(); String[] tempStrDate = strDate.split(","); for (int k = 0; k < tempStrDate.length; k++) { HashMap<String, String> dateMap = new HashMap<String, String>(); dateMap = DateUtils.formatStrDateToDateMap(tempStrDate[k]); if (dateMap == null) continue; String strBeginDate = (String) dateMap.get("beginDate"); String strEndDate = (String) dateMap.get("endDate"); if (strEndDate == null || strEndDate.length() == 0) { strEndDate = strBeginDate; } // 检查同一个媒介计划有没有重复日期 Date tmpBeginDate = null; Date tmpEndDate = null; if (strBeginDate.indexOf("-") > 0) { tmpBeginDate = DateUtils.stringToDate(strBeginDate, "yyyy-MM-dd"); tmpEndDate = DateUtils.stringToDate(strEndDate, "yyyy-MM-dd"); } else { tmpBeginDate = DateUtils.stringToDate(strBeginDate, "yyyyMMdd"); tmpEndDate = DateUtils.stringToDate(strEndDate, "yyyyMMdd"); } int len = DateUtils.getDateLength(tmpBeginDate, tmpEndDate); Date tmpDate = null; for (int j = 0; j < len; j++) { tmpDate = DateUtils.dateAddDays(tmpBeginDate, j); if (mediaPlanDateMap.size() > 0) { if ("1".equals(mediaPlanDateMap.get(tmpDate))) { repeatDateList.add(DateUtils.dateToString(tmpDate, "yyyy-MM-dd")); } else { mediaPlanDateMap.put(tmpDate, "1"); } } else { mediaPlanDateMap.put(tmpDate, "1"); } } } return repeatDateList; } /** * 获得给定日期中的【年】. * * @param date * 日期 * @return 日期中的 年 */ public static String parseYear(Date date) { return new SimpleDateFormat(SHORT_PATTERN, java.util.Locale.CHINA) .format(date).substring(0, 4); } /** * 获得当前日期中的【年】. * * @return 日期中的 年 */ public static String parseYear() { Date date = Calendar.getInstance().getTime(); return new SimpleDateFormat(SHORT_PATTERN, java.util.Locale.CHINA) .format(date).substring(0, 4); } /** * 获取"yyyy-MM-dd"格式的日期字符串 * * @param date * 需要转换成"yyyy-MM-dd"的日期类 * @return the string 转换后的字符串 */ public static String dateToSimpleString(java.util.Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); return format.format(date); } /** * 获取"yyyy-MM-dd"格式的日期 * * @param String * the date 需要转换成"yyyy-MM-dd"的日期字符串 * @return the java.util. date 转换后的日期类 */ public static java.util.Date stringSimpleToDate(String date) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); return (java.util.Date) format.parseObject(date); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获取月份所属季度 * * @param month * 月份 * @return the quarter by month 所属季度 */ public static int getQuarterByMonth(int month) { if (month >= 1 && month <= 12) { return ((month + 2) / 3); } else { return -1; } } /** * 得到date所在周的周日(第一天). * * @param date * the date * @return the sunday * @return */ @SuppressWarnings("static-access") public static Date getSunday(Date date) { try { Calendar c = Calendar.getInstance(); c.setTime(date); int intWeek = c.get(c.DAY_OF_WEEK); c.add(c.DATE, -(intWeek - 1)); date = (c.getTime()); } catch (Exception e) { System.err.println("ReportGatekeeper.java--getSunday:" + e); } return date; } /** * * 得到date所在周,周六(最后一天). * * @param date * the date * @return the saturday * @return */ @SuppressWarnings("static-access") public static Date getSaturday(Date date) { try { Calendar c = Calendar.getInstance(); c.setTime(getSunday(date)); c.add(c.DATE, 6); date = (c.getTime()); } catch (Exception e) { System.err.println("ReportGatekeeper.java--getSunday:" + e); } return date; } /** * 得到某月的第一天 * * @param date * the date * @return the first day in month */ public static Date getFirstDayInMonth(Date date) { String dateString = DateUtils.dateToSimpleString(date); dateString = dateString.substring(0, 8); dateString = dateString.concat("01"); date = DateUtils.stringToDate(dateString); return date; } /** * 得到某个季度的第一天 * * @param date * the date * @return the first day in quarter */ public static Date getFirstDayInQuarter(Date date) { String dateString = DateUtils.dateToSimpleString(date); String t = dateString.substring(5, 7); dateString = dateString.substring(0, 5); int i = new Integer(t).intValue(); int q = getQuarterByMonth(i); int month = (q - 1) * 3 + 1; if (month < 10) dateString = dateString.concat("0" + month); else dateString = dateString.concat("" + month); dateString = dateString.concat("-01"); date = DateUtils.stringToDate(dateString); return date; } /** * 得到某年的第一天 * * @param date * the date * @return the first day in year */ public static Date getFirstDayInYear(Date date) { String dateString = DateUtils.dateToSimpleString(date); String t = dateString.substring(0, 4); dateString = t.concat("-01-01"); date = DateUtils.stringToDate(dateString); return date; } /** * 得到某年的最后一天 * * @param date * the date * @return the last day in year */ public static Date getLastDayInYear(Date date) { Date tmp = DateUtils.getFirstDayInYear(date); tmp = DateUtils.dateAddYears(tmp, 1); tmp = DateUtils.dateAddDays(tmp, -1); return tmp; } /** * 得到某月的最后一天 * * @param firstDayInMonth * the first day in month * @return the last day in month */ public static Date getLastDayInMonth(Date firstDayInMonth) { Date tmp = DateUtils.dateAddMonths(firstDayInMonth, 1); tmp = DateUtils.getFirstDayInMonth(tmp); tmp = DateUtils.dateAddDays(tmp, -1); return tmp; } /** * 得到某个季度的最后一天 * * @param value * the value * @return the last day in quarter */ public static Date getLastDayInQuarter(Date value) { Date tmp = DateUtils.getFirstDayInQuarter(value); tmp = DateUtils.dateAddMonths(tmp, 3); tmp = DateUtils.dateAddDays(tmp, -1); return tmp; } /** * 获取一周的第一天 周一为第一天 * * @param date * @return Date */ public static Date getFirstDayOfWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; if (dayOfWeek == 0) { dayOfWeek = 7; } return org.apache.commons.lang.time.DateUtils.addDays(date, 1 - dayOfWeek); } /** * 获取一周最后一天 周一为第一天 * * @param date * @return Date */ public static Date getLastDayOfWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; if (dayOfWeek == 0) { dayOfWeek = 7; } return org.apache.commons.lang.time.DateUtils.addDays(date, 7 - dayOfWeek); } public static String formatDate(Date date) { if (null == date) { return ""; } String dateStr = new SimpleDateFormat(PATTERN_THREE, java.util.Locale.CHINA).format(date); return dateStr; } /** * 返回当前日期的格式化字符串. * * @param tag * 0:yyyy-MM-dd HH:mm:ss;1:yyyyMMddHHmmss;2:yyyy-MM-dd;3:yyyyMM * @return 格式化成字符串的日期 */ public static String formatDate(int tag) { Date date = Calendar.getInstance().getTime(); String dateStr = null; switch (tag) { case 0: dateStr = new SimpleDateFormat(LONG_PATTERN, java.util.Locale.CHINA) .format(date); break; case 1: dateStr = new SimpleDateFormat(SHORT_PATTERN, java.util.Locale.CHINA).format(date); break; case 2: dateStr = new SimpleDateFormat(PATTERN_THREE, java.util.Locale.CHINA).format(date); break; case 3: dateStr = new SimpleDateFormat(PATTERN_FOUR, java.util.Locale.CHINA) .format(date); break; default: dateStr = new SimpleDateFormat(LONG_PATTERN, java.util.Locale.CHINA) .format(date); break; } return dateStr; } public static boolean dateCompare(Date date1, Date date2) { if (date1.getTime() < date2.getTime()) { return true; } return false; } /** * 计算两个日期间的差值,返回指定单位类型 * * @param startdate * 起始日期 * @param enddate * 急速日期 * @param iType * 0-分钟;1-小时;2-天;3-月;4-年。 */ public static int dateCal(Date startdate, Date enddate, int iType) { Calendar calBegin = parseDateTime(startdate); Calendar calEnd = parseDateTime(enddate); long lBegin = calBegin.getTimeInMillis(); long lEnd = calEnd.getTimeInMillis(); int ss = (int) ((lEnd - lBegin) / 1000L); int min = ss / 60; int hour = min / 60; int day = hour / 24; if (iType == MINITE_TYPE) return min; if (iType == HOUR_TYPE) return hour; if (iType == DAY_TYPE) return day; else return -1; } public static Calendar parseDateTime(Date d) { Calendar cal = Calendar.getInstance(); int yy = 0, mm = 0, dd = 0, hh = 0, mi = 0, ss = 0; cal.setTime(d); yy = cal.get(Calendar.YEAR); mm = cal.get(Calendar.MONTH); dd = cal.get(Calendar.DAY_OF_MONTH); hh = cal.get(Calendar.HOUR_OF_DAY); mi = cal.get(Calendar.MINUTE); ss = cal.get(Calendar.SECOND); cal.set(yy, mm, dd, hh, mi, ss); return cal; }
阅读全文
0 0
- UTILS
- Utils
- utils
- utils
- Utils
- Utils
- Utils
- utils
- Utils
- Utils
- Utils
- UTILS
- Utils
- Utils
- Utils
- Utils
- utils
- Utils
- ORACLE查询删除重复记录三种方法
- 【转】Java 8新特性终极指南
- 解决slideDown(),slideUp()执行结束才开始下一次的执行
- pdf书签导出导入
- c++中有些重载运算符为什么要返回引用
- Utils
- git如何push到远程分支
- redis安装及使用
- Makefile.am 介绍
- AutoCloseable的用法 学习札记
- iPhone X新配色曝光!明年1月开售?
- 腾讯全球新总部滨海大厦曝光!满是黑科技,看完你会想辞职...
- 两元开宝马?宝马共享汽车落地中国
- Windows 下 MySql 5.7.20安装及data和my.ini文件的配置