package com.slcf.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateTimeUtil { static SimpleDateFormat sdfLongTime = new SimpleDateFormat("yyyyMMddHHmmssSSS"); static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyyMMddHHmmss"); static SimpleDateFormat sdfDate = new SimpleDateFormat("yyyyMMdd"); static SimpleDateFormat ddfLongTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); static SimpleDateFormat ddfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); static SimpleDateFormat ddfDate = new SimpleDateFormat("yyyy-MM-dd"); static Calendar calendar = Calendar.getInstance(); /** * 获取当前日期时间 * 传入参数为整数8,10,14,17,19,23
* 根据传入长度返回8,10,14,17,19,23的字符串日期值
* 8 yyyyMMdd
* 10 yyyy-MM-dd
* 14 yyyyMMddHHmmss
* 17 yyyyMMddHHmmssSSS
* 19 yyyy-MM-dd HH:mm:ss
* 23 yyyy-MM-dd HH:mm:ss:SSS **/ public static String getStringDateTime(int len){ Date date=new Date(); String cdate=""; if (len == 17) { cdate = sdfLongTime.format(date); } else if (len == 14) { cdate = sdfTime.format(date); } else if (len == 8) { cdate = sdfDate.format(date); } else if (len == 19) { cdate = ddfTime.format(date); } else if (len == 23) { cdate = ddfLongTime.format(date); } else if (len == 10) { cdate = ddfDate.format(date); } return cdate; } /** * 字符串转时间 * @param dateString 传入的时间字符串 * @param len 取值如下
* 8 yyyyMMdd
* 10 yyyy-MM-dd
* 14 yyyyMMddHHmmss
* 17 yyyyMMddHHmmssSSS
* 19 yyyy-MM-dd HH:mm:ss
* 23 yyyy-MM-dd HH:mm:ss:SSS * @return */ public static Date stringToDate(String dateString,int len){ Date date = null; try { if (len == 17) { date = sdfLongTime.parse(dateString); } else if (len == 14) { date = sdfTime.parse(dateString); } else if (len == 8) { date = sdfDate.parse(dateString); } else if (len == 19) { date = ddfTime.parse(dateString); } else if (len == 23) { date = ddfLongTime.parse(dateString); } else if (len == 10) { date = ddfDate.parse(dateString); } } catch (Exception e) { return null; } return date; } /** * 把传入的时间转化为字符串 * @param date * @param len * @return */ public static String dateToStr(Date date,int len){ if(date == null){ return null; } String cdate=""; if(len==17){ cdate=sdfLongTime.format(date); }else if(len==14){ cdate=sdfTime.format(date); }else if(len==8){ cdate=sdfDate.format(date); }else if(len==19){ cdate = ddfTime.format(date); } return cdate; } /** * * @param Idate数据 * @param len需要剪切的长度 * @return剪切后返回String类型 */ public static String getSubStringDateTime(String Idate,int len){ String rDate=""; if(Idate!=null && !Idate.equals("")){ if(len==17){ rDate=Idate; }else if(len==14){ rDate=Idate.substring(0,len); }else if(len==8){ rDate=Idate.substring(0,len); } } return rDate; } /** * 入参是string 日期时间类型如2012-06-08 10:00,2012-06-08等,len是长度 * @param date * @return返回输入的同等长度时间 */ public static String getHourMinue(String date,int len){ Date date1=new Date(); String sDate=""; date=date.trim(); if(date!=null){ if(date.indexOf("-")>-1){ try { if(len==14){ date1=ddfTime.parse(date); sDate=sdfTime.format(date1); }else if(len==8){ date1=ddfDate.parse(date); sDate=sdfDate.format(date1); }else if(len==17){ date1=ddfLongTime.parse(date); sDate=sdfLongTime.format(date1); } } catch (ParseException e) { e.printStackTrace(); } }else{ sDate=date; } } return sDate; } /** * 截取 * 入参是string 日期时间类型如20120608100000,len是长度14,8,17 * @param date * @return返回输入的同等长度时间 */ public static String getDateSubString(String date,int len){ if(date!=null&&len>0){ if(len==14){ return date.substring(0,14); }else if(len==8){ return date.substring(0,8); }else if(len==6){ return date.substring(0,6); } } return null; } /** * 将数据库的string日期类型转成日期格式,len是按长度转换 * 入参如20010101返回2001-01-01 * @param date * @param len * @return */ public static String getStringToDate(String date,int len){ String strTodate=""; if(date!=""){ if(len==8){ try { strTodate=ddfDate.format(sdfDate.parse(date)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if(len==14){ try { strTodate=ddfTime.format(sdfTime.parse(date)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if(len==17){ try { strTodate=ddfLongTime.format(sdfLongTime.parse(date)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return strTodate; } /** * 与当前天差几天的某天 * @param days 相差的天数 * @return 返回的时间格式为20120827 */ public static String getDate(int days){ calendar.add(Calendar.DAY_OF_MONTH, days); Date date = calendar.getTime(); String day = sdfDate.format(date); return day; } /** * 指定某天的开始和结束时间 * @param date 格式20120827 * @return */ public static String[] getDateStartAndEnd(String date){ if(date == null || date.length()<1){ return null; } String[] dates = new String[2]; dates[0] = date+"0000000"; dates[1] = date+"2359599"; return dates; } /** * 相差几天的某天的起始时间 * @return */ public static String[] getStartAndEnd(int days){ calendar.add(Calendar.DAY_OF_MONTH, days); Date date = calendar.getTime(); String day = sdfDate.format(date); String[] dates = new String[2]; dates[0] = day+"000000"; dates[1] = day+"235959"; return dates; } /** * 今天是礼拜几 * 0-星期日 * 6-星期六 * @return */ public static int getweekday(){ int weekday = calendar.get(Calendar.DAY_OF_WEEK); weekday -=1; return weekday; } /** * 当前时间是几点(24HH) */ public static int gethour(){ return calendar.get(Calendar.HOUR_OF_DAY); } /** * 当前是几月 * @return */ public static int getmonth(){ return calendar.get(Calendar.MONTH)+1; } /** * 当前年份 * @return */ public static int getyear(){ return calendar.get(Calendar.YEAR); } /** * 得到某年某月的第一天 * @param year * @param month * @return yyyy-MM-dd HH:mm:ss */ public static String getFirstDayOfMonth(int year, int month) { calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month - 1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getMinimum(Calendar.DATE)); return ddfTime.format(calendar.getTime()); } /** * 得到某年某月的最后一天 * * @param year * @param month * @return */ public static String getLastDayOfMonth(int year, int month) { calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month - 1); calendar.set(Calendar.DAY_OF_MONTH, 1); int value = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH, value); return ddfTime.format(calendar.getTime()); } /** * 获取指定年、月的开始日期和结束日期 * @param month * @return String[0]=2013-12-01 00:00:00
String[1] 2013-12-31 23:59:59 */ public static String[] getMonthStartEndDay(int year,int month){ String[] days = new String[2]; days[0] = getFirstDayOfMonth(year, month); days[1] = getLastDayOfMonth(year, month); return days; } /** * 解析毫秒 * @param msec * @return x天x时x分x秒 */ public static String analyzeMsec(Long msec){ if(msec == null || msec <= 0){ return "0"; } String strSen = null; String strMin = null; String strHor = null; String strDay = null; Long sens = msec/1000; if(sens > 60){//秒 Long senmod = sens%60; if(senmod > 0){ strSen = senmod+"秒"; }else{ strSen = "0秒"; } Long mins = sens/60; if(mins > 60){//分 Long minmod = mins%60; if(minmod > 0){ strMin = minmod+"分"; }else{ strMin = "0分"; } Long hors = mins/60; if(hors > 24){//小时 Long hormod = hors%24; if(hormod > 0){ strHor = hormod + "时"; }else{ strHor = "0时"; } strDay = (hors/24)+"天"; }else{ strHor = hors+"时"; } }else{ strMin = mins+"分"; } }else{ strSen=sens+"秒"; } StringBuffer sb = new StringBuffer(); if(strDay != null){ sb.append(strDay); } if(strHor != null){ sb.append(strHor); } if(strMin != null){ sb.append(strMin); } if(strSen != null){ sb.append(strSen); } return sb.toString(); } public static void main(String[] args){ Long a = 15265845L; // float b = a/1000f; // b = Math.round(b); // Long min = b%60; String d = DateTimeUtil.analyzeMsec(a); System.out.println(d+"=="); // System.out.println(new DateTimeUtil().getyear()); // String ftppath = "/material/staticpage/b17d38a1-e8ea-4dbf-8265-d4eb44836c80.rar"; // String xmlpath = ftppath.substring(0, ftppath.lastIndexOf(".")); // System.out.println(xmlpath); // String[] a = getStartAndEnd(-1); // System.out.println(a[0]+"==="+a[1]); // String pw = ""; // for (int i = 0; i < 1; i++) // { // char c = (char) (int) (97); // pw += c; // } // System.out.println(pw.toUpperCase()); // String a="20120628010101001"; // try { // String b=ddfLongTime.format(sdfLongTime.parse(a)); // System.out.println(b); // } catch (ParseException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // String a = "A11"; // String _a=a.substring(a.length()-3,1); // String b=String.valueOf(Integer.parseInt(a.substring(a.length()-2))+1); // if(b.length()<2){ // b="0"+b; // } // char _b=_a.charAt(0); // System.out.println(_a); // System.out.println((char)(((int)a.substring(a.length()-3).substring(0,1).charAt(0))+1)); // if(){ // // } } }