package cn.ksource.web.util; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.StringUtil; public class DateParepareUtil { /** * 得到起始时间的当天的开始是时间 如:1014-01-01 00:00:00 * @param dateStr * @return */ public static String getBeginDate(String dateStr){ return dateStr.trim()+" 00:00:00"; } /** * 得到起始时间的当天的结束是时间 如:1014-01-01 23:29:59 * @param dateStr * @return */ public static String getEndDate(String dateStr){ return dateStr.trim()+" 23:59:59"; } /** * 返回当前时间字符串 * @param format,日期格式化字符串 如“yyyy-MM-dd” * @return 当前日期字符串 */ public static String getToday(String str) { SimpleDateFormat format = new SimpleDateFormat(str);//设置日期格式 String nowTime = format.format(new Date()); return nowTime; } /** * 功能描述:返回给定日期加上多少天之后的时间
* @param from yyyyMMdd * @param day * @param length * @return * @author:杨凯
* 时间:Apr 18, 2009 11:56:16 AM
*/ public static String getDateAdd(String from,int day){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(sdf.parse(from)); } catch (Exception e) { e.printStackTrace(); } calendar.add(Calendar.DAY_OF_MONTH, day); System.out.println(calendar.getTimeInMillis()); String date = sdf.format(calendar.getTime()); return date; } /** * 通过年,月获得该月的第一天和最后一天 如果year和month参数都为空 默认为当前年月 * @param year 格式 yyyy * @param month 格式 MM * @return 数组第一个当前月第一天, 数组第二个:当前月最后一天 */ public static String[] queryFirstLastDate(String year,String month) { String[] str = new String[2]; if(StringUtil.isEmpty(year) || !StringUtils.isNumeric(year)||year.length()!=4||Integer.valueOf(year)<0) { year = DateUtil.format(new Date(), "yyyy"); } if(StringUtil.isEmpty(month)|| !StringUtils.isNumeric(month)||Integer.valueOf(month)<1||Integer.valueOf(month)>12) { month = DateUtil.format(new Date(), "MM"); } if(month.length()!=2) { month = "0"+month; } String firstDate = year+"-"+month+"-01"; str[0] = firstDate; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = dateFormat.parse(firstDate); String lastDate = dateFormat.format(lastDayOfMonth(date)); str[1] = lastDate; } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; } /* * 获得指定日期所在月最后一天 */ public static Date lastDayOfMonth(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.DAY_OF_MONTH, 1); cal.roll(Calendar.DAY_OF_MONTH, -1); return cal.getTime(); } /** * 获取当前时间的以前的日期或者以后的日期 * @param format 返回日期格式 * @param num 如 -1: 前一个月 1:后一个月 * @return */ public static String getPrevNextMonth(String format,int num){ String str = ""; SimpleDateFormat sdf=new SimpleDateFormat(format); Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, num); cal.set(Calendar.DATE, 1);//把日期设置为当月第一天 return sdf.format(cal.getTime()); } /** * 功能描述:字母判断 * * @param str * @return */ public static boolean isZimu(String str) { if (str == null || "".equals(str)) return false; Pattern pattern = Pattern.compile("[a-zA-Z]*"); return pattern.matcher(str).matches(); } public static void main(String[] args) { System.out.println(isZimu("dddd2")); } /** * 获得指定日期所有月的最有一天 */ public static String lastDayMonth(String date,String inputFormat,String outputFormat) { SimpleDateFormat format = new SimpleDateFormat(inputFormat); try { Date date2 = format.parse(date); SimpleDateFormat dateFormat = new SimpleDateFormat(outputFormat); String lastDate = dateFormat.format(lastDayOfMonth(date2)); System.out.println(lastDate); return lastDate; } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } }