java 时间工具类 DateUtils.java DateFormat/Calendar/Timestamp

来源:互联网 发布:windows安装苹方字体 编辑:程序博客网 时间:2024/05/01 00:41
import java.sql.Timestamp;import java.text.DateFormat;import java.text.Format;import java.text.ParseException;import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.HashMap;import java.util.Locale;import java.util.Map;import java.util.Random;public class DateUtils {public static final String YEAR = "year";//年份public static final String WEEKNUM = "weekNum";//周数public static final String TYPE_DATE_BEFORE = "date_before";public static final String TYPE_DATE_AFTER = "date_after";/** * 获取现在时间 *  * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */public static Date getNowDate() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);ParsePosition pos = new ParsePosition(0);Date currentTime_2 = formatter.parse(dateString, pos);return currentTime_2;}/** * 方法描述:获取自然周数和所在年份 * @date: 日期:2015-11-17 时间:下午07:17:03 * @param date * @return */public static Map<String, Integer> getWeekNumAndYearNum(Date date) {Date monday = getMonday(date);Calendar cal = Calendar.getInstance();cal.setFirstDayOfWeek(Calendar.MONDAY);cal.setMinimalDaysInFirstWeek(7);cal.setTime(monday);int week = cal.get(Calendar.WEEK_OF_YEAR);int year = cal.get(Calendar.YEAR);Map<String, Integer> map = new HashMap<String, Integer>();map.put(WEEKNUM, week);map.put(YEAR, year);return map;}/** *  *方法描述:返回当前时间 *  *@date: 日期:2015-5-14 时间:下午03:55:20 *@param i *@return */public static String getCurrTime() {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = df.format(new Date());return date;}/** *  *方法描述:获取当前时间 *  *@return Timestamp */public static Timestamp getNowTime() {return new Timestamp(new Date().getTime());}/** * 把形如GMT+0.8 GMT+8.0 GMT+8:00 GMT+08:00中国的标准时间改为yyyy-MM-dd HH:mm:ss的格式 *  * @param date * @return */public static String getDateStr(String date) {if (!"".equals(date)) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dest = format.format(Date.parse(date));return dest;} else {return "";}}/** * 获取时间格式: HH:mm *  * @param date * @return */public static String getDateStrHM(String date) {SimpleDateFormat format = new SimpleDateFormat("HH:mm");String dest = format.format(DateUtils.strToDateLong(date));return dest;}public static String strFormatDateShort(String date) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");String dest = formatter.format(DateUtils.strToDateLong(date));return dest;}/** *  *方法描述:获取年月 *  *@param date *@return */public static String getDateStrYM(Date d) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");String dest = format.format(d);return dest;}/** * 获取现在时间 *  * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */public static Date getDateLong(Date currentTime) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);return DateUtils.strToDateLong(dateString);}/** * 获取现在时间 *  * @throws ParseException *  * @return返回短时间格式 yyyy-MM-dd */public static Date getNowDateShort() {try {Date currentTime = new Date();DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(currentTime);Date currentTime_2 = formatter.parse(dateString);return currentTime_2;} catch (ParseException e) {e.printStackTrace();}return null;}/** * 将长格式字符串改为yyyy-MM-dd格式 *  * @return返回短时间格式 yyyy-MM-dd */public static String getDateShort(Date currentTime) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");if (null != currentTime) {String dateString = formatter.format(currentTime);return dateString;} else {return "";}}public static String getDateFormatShort(Date currentTime) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");if (null != currentTime) {String dateString = formatter.format(currentTime);return dateString;} else {return "";}}/** * 将长格式字符串改为yyyy-MM-dd hh:mm:ss格式 *  * @return返回短时间格式yyyy-MM-dd hh:mm:ss */public static String getDateLongL(Date currentTime) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);return dateString;}/** * 获取现在时间 *  * @return返回字符串格式 yyyy-MM-dd HH:mm:ss */public static String getStringDate() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);return dateString;}/** * 获取现在时间 *  * @return 返回短时间字符串格式yyyy-MM-dd */public static String getStringDateShort() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");String dateString = formatter.format(currentTime);return dateString;}/** * 获取时间 小时:分;秒 HH:mm:ss *  * @return */public static String getTimeShort() {SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");Date currentTime = new Date();String dateString = formatter.format(currentTime);return dateString;}public static String getTimeShort(Date currentTime) {SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");String dateString = formatter.format(currentTime);return dateString;}public static String getTimeShorts() {SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");Date currentTime = new Date();String dateString = formatter.format(currentTime);return dateString;}public static String getTimeShorts(Date str) {SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");String dateString = formatter.format(str);return dateString;}/** * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss *  * @param strDate * @return */public static Date strToDateLong(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");ParsePosition pos = new ParsePosition(0);if (strDate != null) {Date strtodate = formatter.parse(strDate, pos);return strtodate;}return null;}public static Date strToDateShort(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);if (strDate != null) {Date strtodate = formatter.parse(strDate, pos);return strtodate;}return null;}/** * 将时间mm/dd/yyyy格式转换为yyyy-mm-dd *  * @param date *            时间字符串 * @return */public static String dateToStr(String date) {String[] strDate = date.split("/");String dateString = strDate[2] + "-" + strDate[1] + "-" + strDate[0];return dateString;}/** * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss *  * @param dateDate * @return */public static String dateToStrLong(java.util.Date dateDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");if (dateDate != null) {String dateString = formatter.format(dateDate);return dateString;} else {return "";}}/** * 将短时间格式时间转换为字符串 yyyy-MM-dd *  * @param dateDate * @param k * @return */public static String dateToStr(java.util.Date dateDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");if (dateDate != null) {String dateString = formatter.format(dateDate);return dateString;} else {return "";}}/** * 将短时间格式字符串转换为时间 yyyy-MM-dd *  * @param strDate * @return */public static Date strToDate(String strDate) {if (strDate == null) {return null;}SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(strDate, pos);return strtodate;}/** * 将短时间格式字符串转换为时间 yyyy *  * @param strDate * @return */public static Date strToDateYYYY(String strDate) {if (strDate == null) {return null;}SimpleDateFormat formatter = new SimpleDateFormat("yyyy");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(strDate, pos);return strtodate;}/** * 得到现在时间 *  * @return */public static Date getNow() {Date currentTime = new Date();return currentTime;}/** * 提取一个月中的最后一天 *  * @param day * @return */public static Date getLastDate(long day) {Date date = new Date();long date_3_hm = date.getTime() - 3600000 * 34 * day;Date date_3_hm_date = new Date(date_3_hm);return date_3_hm_date;}/** * 得到现在时间 *  * @return 字符串 yyyyMMdd HHmmss */public static String getStringToday() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");String dateString = formatter.format(currentTime);return dateString;}/** * 得到现在时间 *  * @return 学符串yyyyMMdd */public static String getStringShortToday() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");String dateString = formatter.format(currentTime);return dateString;}/** * 得到现在小时 */public static String getHour() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);String hour;hour = dateString.substring(11, 13);return hour;}/** * 得到现在分钟 *  * @return */public static String getTime() {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);String min;min = dateString.substring(14, 16);return min;}/** * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。 *  * @param sformat *            yyyyMMddhhmmss * @return */public static String getUserDate(String sformat) {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat(sformat);String dateString = formatter.format(currentTime);return dateString;}/** * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟 */public static String getTwoHour(String st1, String st2) {String[] kk = null;String[] jj = null;kk = st1.split(":");jj = st2.split(":");if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))return "0";else {double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;if ((y - u) > 0)return y - u + "";elsereturn "0";}}/** * 得到二个日期间的间隔天数 */public static String getTwoDay(String sj1, String sj2) {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");long day = 0;try {java.util.Date date = myFormatter.parse(sj1);java.util.Date mydate = myFormatter.parse(sj2);day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);} catch (Exception e) {return "";}return day + "";}/** * 时间前推或后推分钟,其中JJ表示分钟. */public static String getPreTime(String sj1, String jj) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String mydate1 = "";try {Date date1 = format.parse(sj1);long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;date1.setTime(Time * 1000);mydate1 = format.format(date1);} catch (Exception e) {}return mydate1;}/** * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 */public static String getNextDay(String nowdate, String delay) {try {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");String mdate = "";Date d = strToDate(nowdate);long myTime = (long) ((d.getTime() / 1000) + Float.parseFloat(delay) * 24 * 60 * 60);d.setTime(myTime * 1000);mdate = format.format(d);return mdate;} catch (Exception e) {return "";}}/** * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数 转换为yyyy-MM-dd HH:mm:ss */public static String getNextDayByNowDate(String nowdate, String delay) {try {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String mdate = "";Date d = strToDate(nowdate);long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;d.setTime(myTime * 1000);mdate = format.format(d);return mdate;} catch (Exception e) {return "";}}/** *  *方法描述:得到一个时间延后或前移几天的时间,date为时间,delay为前移或后延的天数 *  *@param date *@param delay *@return */public static Date getNextDate(Date date, int delay) {Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.DATE, delay);return cal.getTime();}/** *  *方法描述:移动月份 *  *@param date *@param month *@return */public static Date getNextMonth(Date date, int month) {Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.MONTH, month);return cal.getTime();}/** * 判断是否润年 *  * @param ddate * @return */public static boolean isLeapYear(String ddate) {/** * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年 * 3.能被4整除同时能被100整除则不是闰年 */Date d = strToDate(ddate);GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(d);int year = gc.get(Calendar.YEAR);if ((year % 400) == 0)return true;else if ((year % 4) == 0) {if ((year % 100) == 0)return false;elsereturn true;} elsereturn false;}/** * 返回美国时间格式 26 Apr 2006 *  * @param str * @return */public static String getEDate(String str) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(str, pos);String j = strtodate.toString();String[] k = j.split(" ");return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);}/** * 获取一个月的最后一天 *  * @param dat * @return */public static String getEndDateOfMonth(String dat) {// yyyy-MM-ddString str = dat.substring(0, 8);String month = dat.substring(5, 7);int mon = Integer.parseInt(month);if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {str += "31";} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {str += "30";} else {if (isLeapYear(dat)) {str += "29";} else {str += "28";}}return str;}/** *  *方法描述:获取某时间当月最后一天 *  *@param sDate *@return */public static Date getLastDayOfMonth(Date sDate) {Calendar cDay1 = Calendar.getInstance();cDay1.setTime(sDate);final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);Date lastDate = cDay1.getTime();lastDate.setDate(lastDay);return lastDate;}/** * 判断二个时间是否在同一个周 *  * @param date1 * @param date2 * @return */public static boolean isSameWeekDates(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);if (0 == subYear) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;} else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {// 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;} else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))return true;}return false;}/** * 产生周序列,即得到当前时间所在的年度是第几周 *  * @return */public static String getSeqWeek() {Calendar c = Calendar.getInstance(Locale.CHINA);String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));if (week.length() == 1)week = "0" + week;String year = Integer.toString(c.get(Calendar.YEAR));return year + week;}/** * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号 *  * @param sdate * @param num * @return */public static String getWeek(String sdate, String num) {// 再转换为时间Date dd = DateUtils.strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(dd);if (num.equals("1")) // 返回星期一所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);else if (num.equals("2")) // 返回星期二所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);else if (num.equals("3")) // 返回星期三所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);else if (num.equals("4")) // 返回星期四所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);else if (num.equals("5")) // 返回星期五所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);else if (num.equals("6")) // 返回星期六所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);else if (num.equals("0")) // 返回星期日所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());}/** * 根据一个日期,返回是星期几的字符串 *  * @param sdate * @return */public static String getWeek(String sdate) {// 再转换为时间Date date = DateUtils.strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(date);// int hour=c.get(Calendar.DAY_OF_WEEK);// hour中存的就是星期几了,其范围 1~7// 1=星期日 7=星期六,其他类推return new SimpleDateFormat("EEEE").format(c.getTime());}public static String getWeekStr(String sdate) {String str = "";str = DateUtils.getWeek(sdate);if ("星期日".equals(str)) {str = "周日";} else if ("星期一".equals(str)) {str = "周一";} else if ("星期二".equals(str)) {str = "周二";} else if ("星期三".equals(str)) {str = "周三";} else if ("星期四".equals(str)) {str = "周四";} else if ("星期五".equals(str)) {str = "周五";} else if ("星期六".equals(str)) {str = "周六";}// System.out.println(str);return str;}/** * 两个时间之间的天数 *  * @param date1 * @param date2 * @return */public static long getDays(String date1, String date2) {if (date1 == null || date1.equals(""))return 0;if (date2 == null || date2.equals(""))return 0;// 转换为标准时间SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");java.util.Date date = null;java.util.Date mydate = null;try {date = myFormatter.parse(date1);mydate = myFormatter.parse(date2);} catch (Exception e) {}long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);return day;}/** * 两个时间之间的天数 *  * @param date1 * @param date2 * @return */public static long getDays(Date end, Date start) {if (end == null)return 0;if (start == null)return 0;// 转换为标准时间end = org.apache.commons.lang.time.DateUtils.truncate(end, Calendar.DATE);start = org.apache.commons.lang.time.DateUtils.truncate(start, Calendar.DATE);long day = (end.getTime() - start.getTime()) / (24 * 60 * 60 * 1000);return day;}/** * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间 * 此函数返回该日历第一行星期日所在的日期 *  * @param sdate * @return */public static String getNowMonth(String sdate) {// 取该时间所在月的一号sdate = sdate.substring(0, 8) + "01";// 得到这个月的1号是星期几Date date = DateUtils.strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(date);int u = c.get(Calendar.DAY_OF_WEEK);String newday = DateUtils.getNextDay(sdate, (1 - u) + "");return newday;}/** * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数 *  * @param k *            表示是取几位随机数,可以自己定 */public static String getNo(int k) {return getUserDate("yyyyMMddHHmmss") + getRandom(k);}/** * 返回一个随机数 *  * @param i * @return */public static String getRandom(int i) {Random jjj = new Random();// int suiJiShu = jjj.nextInt(9);if (i == 0)return "";String jj = "";for (int k = 0; k < i; k++) {jj = jj + jjj.nextInt(9);}return jj;}/** *  * @param args */public static boolean RightDate(String date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");;if (date == null)return false;if (date.length() > 10) {sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");} else {sdf = new SimpleDateFormat("yyyy-MM-dd");}try {sdf.parse(date);} catch (ParseException pe) {return false;}return true;}/** * 将formBean 里的字符时间(yyyy-MM-dd) 转换成Date类型 *  * @param formDate * @return */public static Date formBeanDateToPODate(String formDate) {try {if (formDate != null) {if (!formDate.trim().equals("")) {System.out.println("---------formdate:" + formDate);return java.sql.Date.valueOf(formDate);}}} catch (Exception e) {System.out.println("DateUtils:时间转换异常");return new Date();}return null;}// 获取年月的方法public static String getYearAndMonth() {SimpleDateFormat dateformat2 = new SimpleDateFormat("yyyy年M月");return dateformat2.format(new Date());}// 获取年月日的方法public static String getYearMonthDay() {SimpleDateFormat dateformat2 = new SimpleDateFormat("yyyy年MM月dd日");return dateformat2.format(new Date());}// 获取月日的方法public static String getMonthDay(String datestr) {Date date = DateUtils.strToDate(datestr);SimpleDateFormat dateformat2 = new SimpleDateFormat("M月d日");return dateformat2.format(date);}// 获取月日的方法public static String getDay(String datestr) {Date date = DateUtils.strToDate(datestr);SimpleDateFormat dateformat2 = new SimpleDateFormat("dd");return dateformat2.format(date);}// 获取第几周public static String getDayMonth(String sdate) {// 再转换为时间Date date = DateUtils.strToDate(sdate);Calendar c = Calendar.getInstance();int hour = c.get(Calendar.WEEK_OF_MONTH);// hour中存的就是星期几了,其范围 1~7// 1=星期日 7=星期六,其他类推return hour + "";}/** * 得到当天是本月第几周星期几 *  * @return */public static String getMonthWeekInToday() {String[] weeks = { "日", "一", "二", "三", "四", "五", "六" };Calendar c = Calendar.getInstance();int week = c.get(Calendar.WEEK_OF_MONTH);// 获取是本月的第几周int day = c.get(Calendar.DAY_OF_WEEK);// 获致是本周的第几天地, 1代表星期天...7代表星期六// System.out.println("今天是本月的第" + week + "周");// System.out.println("今天是星期" + weeks[day-1]);return weeks[day - 1];}/** * 得到传过来的日期是本月第几周星期几 *  * @return */public static String getMonthWeekInToday(String date) {String[] weeks = { "日", "一", "二", "三", "四", "五", "六" };Calendar c = Calendar.getInstance();c.setTime(strToDate(date));int week = c.get(Calendar.WEEK_OF_MONTH);// 获取是本月的第几周int day = c.get(Calendar.DAY_OF_WEEK);// 获致是本周的第几天地, 1代表星期天...7代表星期六// System.out.println("今天是本月的第" + week + "周");// System.out.println("今天是星期" + weeks[day-1]);return weeks[day - 1];}public static String getDayWeek(String sdate, String strs) {// 再转换为时间Date date = DateUtils.strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(date);String str = "";int hour = c.get(Calendar.DAY_OF_WEEK);if (hour == 1) {str = strs + "日";} else if (hour == 2) {str = strs + "一";} else if (hour == 3) {str = strs + "二";} else if (hour == 4) {str = strs + "三";} else if (hour == 5) {str = strs + "四";} else if (hour == 6) {str = strs + "五";} else if (hour == 7) {str = strs + "六";}return str;}private static int days; // 天数private static int hours; // 时private static int minutes; // 分private static int seconds; // 秒public static String getQuot(String time1, String time2) {long quot = 0;String str = "";SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {Date date1 = ft.parse(time1);Date date2 = ft.parse(time2);quot = date1.getTime() - date2.getTime();int totalSeconds = (int) (quot / 1000);// 得到总天数days = totalSeconds / (3600 * 24);if (days > 0) {str = days + "天前";return str;}int days_remains = totalSeconds % (3600 * 24);// 得到总小时数hours = days_remains / 3600;if (hours > 0) {str = hours + "小时前";return str;}int remains_hours = days_remains % 3600;// 得到分种数minutes = remains_hours / 60;if (minutes > 0) {str = minutes + "分钟前";return str;}// 得到总秒数seconds = remains_hours % 60;if (seconds > 0) {str = seconds + "秒前";return str;}} catch (ParseException e) {e.printStackTrace();}return str;}private static int tdays; // 天数private static int thours; // 时private static int tminutes; // 分private static int tseconds; // 秒public static String getQuott(String time1, String time2) {long quot = 0;String str = "";SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {Date date1 = ft.parse(time1);Date date2 = ft.parse(time2);quot = date1.getTime() - date2.getTime();int totalSeconds = (int) (quot / 1000);// 得到总天数tdays = totalSeconds / (3600 * 24);if (tdays > 0) {str = tdays + "天";return str;}int days_remains = totalSeconds % (3600 * 24);// 得到总小时数thours = days_remains / 3600;if (thours > 0) {str = thours + "时";return str;}int remains_hours = days_remains % 3600;// 得到分种数tminutes = remains_hours / 60;if (tminutes > 0) {str = tminutes + "分";return str;}// 得到总秒数tseconds = remains_hours % 60;if (tseconds > 0) {str = tseconds + "秒";return str;}} catch (ParseException e) {e.printStackTrace();}return str;}/** * 判断日期时间段 *  * @param date * @return */public static String excuteOneTime(String date) {StringBuffer restr = new StringBuffer();// date="2013-01-30 8:20:04";String[] a = date.split(" ");// String a0=a[0];// restr.append(a0);// restr.append(" ");String str = a[1];String[] b = str.split(":");String b0 = b[0];String b1 = b[1];// String b2=b[2];if (Integer.valueOf(b1) >= 0 && Integer.valueOf(b1) <= 30) {restr.append(b0 + ":00" + "-" + b0 + ":30");} else if (Integer.valueOf(b1) > 30) {int b_0 = Integer.valueOf(b0) + 1;restr.append(b0 + ":30" + "-" + Integer.valueOf(b_0) + ":00");}// System.out.println(b0+b1+b2);// System.out.println(b.length);return restr.toString();}/** * 得到指定月的天数 * */public static int getMonthLastDay(int year, int month) {Calendar a = Calendar.getInstance();a.set(Calendar.YEAR, year);a.set(Calendar.MONTH, month - 1);a.set(Calendar.DATE, 1);// 把日期设置为当月第一天a.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天int maxDate = a.get(Calendar.DATE);return maxDate;}/** * 得到本月最后一个周日的日期 *  * @param args * @throws Exception */public static String getMonthAndSunday(int year, int month) {String sundays = "";SimpleDateFormat sdf = new SimpleDateFormat("EEEE");SimpleDateFormat re = new SimpleDateFormat("yyyy-MM-dd");Calendar setDate = Calendar.getInstance();// 从第一天开始int day;for (day = 1; day <= getMonthLastDay(year, month); day++) {setDate.set(Calendar.DATE, day);String str = sdf.format(setDate.getTime());if (str.equals("星期日")) {sundays = re.format(setDate.getTime());}}return sundays;}/** * 得到本月第一个周六日期 *  * @param args * @throws Exception */public static String getFirstSaturdayOfWeek(int year, int month) {Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, year);cal.set(Calendar.MONTH, month - 1);cal.set(Calendar.DATE, 1);while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {cal.add(Calendar.DATE, 1);}Date date = cal.getTime();return dateToStr(date);}/** *  *方法描述:本月第一天日期 *  *@return */public static String getMonthFirstDay() {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();Date theDate = calendar.getTime();GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();gcLast.setTime(theDate);gcLast.set(Calendar.DAY_OF_MONTH, 1);String day_first = df.format(gcLast.getTime());StringBuffer str = new StringBuffer().append(day_first);return str.toString();}/** * 获取当前时间所在周的周一时间 *  * @return */public static Date getMonday() {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 00:00:00", Locale.CHINA);Calendar rl = Calendar.getInstance(Locale.CHINA);// 当前时间,貌似多余,其实是为了所有可能的系统一致// rl.setTimeInMillis(System.currentTimeMillis());// System.out.println("当前时间:"+format.format(rl.getTime()));// rl.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// System.out.println("周一时间:"+format.format(rl.getTime()));int mondayPlus = DateUtils.getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus);Date monday = currentDate.getTime();rl.setTime(monday);return DateUtils.strToDateLong(format.format(rl.getTime()));}/** * 方法描述:获取自然周第一天(周一) * @param date * @return */public static Date getMonday(Date date) {Calendar cl = Calendar.getInstance();cl.setTimeInMillis(date.getTime());cl.setFirstDayOfWeek(Calendar.MONDAY);cl.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);Date start = cl.getTime();return start;}// (1)获得当前日期与本周一相差的天数private static int getMondayPlus() {Calendar cd = Calendar.getInstance();// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);if (dayOfWeek == 1) {return -6;} else {return 2 - dayOfWeek;}}/** * 获取当前时间所在周的周日时间 *  * @return */public static Date getSunday() {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 00:00:00", Locale.CHINA);Calendar rl = Calendar.getInstance(Locale.CHINA);rl.setFirstDayOfWeek(rl.MONDAY);// 当前时间,貌似多余,其实是为了所有可能的系统一致// rl.setTimeInMillis(System.currentTimeMillis());// System.out.println("当前时间:"+format.format(rl.getTime()));rl.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// System.out.println("周一时间:"+format.format(rl.getTime()));return DateUtils.strToDateLong(format.format(rl.getTime()));}/** * 获取时间提示信息,某一时间距离现在n秒、n分钟、n小时、n天.时间距现在比较精确到秒 *  * @param args * @throws Exception */public static String getDateTips(Date beginDate) {Long now = (DateUtils.getNow().getTime()) / 1000L;Long sourse = (Long) (beginDate.getTime() / 1000L);Long differ = now - sourse;String showDate = "";if (differ <= 60L) {// 0-60(包含)秒显示 秒之前showDate = differ + "秒前";} else if (differ <= (60L * 60L)) {// 如果是在60分钟内showDate = (int) (Math.floor(differ / 60L)) + "分钟前";} else if (differ <= 60L * 60L * 24) {// 如果是在1天内showDate = (int) (Math.floor(differ / (60L * 60L))) + "小时前";} else if (differ <= 60L * 60L * 24 * 5) {// 如果是在5天内showDate = (int) (Math.floor(differ / (60L * 60L * 24L))) + "天前";} else {Format format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");showDate = format.format(beginDate);}if (null != showDate && showDate.length() > 18 && showDate.contains(".")) {showDate = showDate.substring(0, showDate.length() - 2);}return showDate;}/** * 将长时间格式字符串转换为字符串 yyyy-MM-dd HH:mm:ss *  * @return * @throws ParseException */public static String longToStrng(String time) throws ParseException {// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;// dateFormat.setLenient(false);if ("".equals(time)) {return "";}try {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");dateFormat.parse(time);return dateToStrLong(strToDateLong(time));} catch (Exception e) {try {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");dateFormat.parse(time);return dateToStrLong(strToDate(time));} catch (Exception e2) {try {Date date = new Date(Long.parseLong(time.trim()));SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(date);// System.out.println("TIME:::" + dateString);return dateString;} catch (Exception e3) {try {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);return DateUtils.dateToStrLong(df.parse(time));} catch (Exception e4) {SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZ yyyy", Locale.ENGLISH);Date date = parser.parse(time);// System.out.println(DateUtils.dateToStrLong(date));return DateUtils.dateToStrLong(date);}}}}}/** * 将长时间格式字符串转换为字符串 上午 HH:mm *  * @return * @throws ParseException */public static String dateToTime(Date date) throws ParseException {Date now = getNowDate();Date todayMiddle = strToDateLong(dateToStr(now) + " 12:00:00");if (getDays(now, date) != 0) {return dateToStrLong(date);}if (todayMiddle.before(date)) {Date d = strToDateLong(getPreTime(dateToStrLong(date), "-720"));return "下午  " + getTimeShorts(d);} else {return "上午  " + getTimeShorts(date);}}/** * yearNum个年后的时间 *  * @param yearNum *            年数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByYear(int yearNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();c.add(Calendar.YEAR, yearNum);return f.format(c.getTime());};/** * yearNum个半年后的时间 *  * @param hardyearNum *            半年个数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByHarfYear(int hardyearNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();int montuNum = hardyearNum * 6;c.add(Calendar.MONTH, montuNum);return f.format(c.getTime());};/** * quarterNum个季度后的时间 *  * @param quarterNum *            季度数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByQuarter(int quarterNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();int montuNum = quarterNum * 3;c.add(Calendar.MONTH, montuNum);return f.format(c.getTime());};/** * monthNum个月后的时间 *  * @param monthNum *            月数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByMonth(int monthNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, monthNum);return f.format(c.getTime());};/** * dayNumt天后的时间 *  * @param monthNum *            天数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByDay(int dayNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();c.add(Calendar.DATE, dayNum);return f.format(c.getTime());};/** * 指定时间+天数 *  * @param date *            指定时间 * @param dayNum *            天数 * @return yyyy-MM-dd */public static String getFutureDateTimeByDays(String date, int dayNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();c.setTime(strToDateLong(date));c.add(Calendar.DATE, dayNum);return f.format(c.getTime());};/** * hourNum小时后的时间 *  * @param hourNum *            天数 * @return yyyy-MM-dd HH:mm:ss */public static String getFutureDateTimeByHour(int hourNum) {Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar c = Calendar.getInstance();c.add(Calendar.HOUR, hourNum);return f.format(c.getTime());};/** *  *方法描述:获取某个时间几小时后的时间 *  *@param oneDate *@param hourNum *@return */public static Date getFutureDateByHour(Date oneDate, int hourNum) {Calendar cal = Calendar.getInstance();cal.setTime(oneDate);cal.add(Calendar.HOUR, hourNum);return cal.getTime();}/** *  *方法描述:获取某个时间几天后的时间 *  *@param oneDate *@param dayNum *@return */public static Date getFutureDateByDay(Date oneDate, int dayNum) {Calendar cal = Calendar.getInstance();cal.setTime(oneDate);cal.add(Calendar.DATE, dayNum);return cal.getTime();}/** *  *方法描述:获取某个时间几个月后的时间 *  *@param oneDate *@param monthNum *@return */public static Date getFutureDateByMonth(Date oneDate, int monthNum) {Calendar cal = Calendar.getInstance();cal.setTime(oneDate);cal.add(Calendar.MONTH, monthNum);return cal.getTime();}/** * 获取年数和周数 *  * @param dataStr * @return YEARNUM WEEKNUM */public static Map<String, Integer> getYearNumAndWeekNum(String dataStr) {Map m = new HashMap<String, Integer>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar cl = Calendar.getInstance();try {cl.setTime(sdf.parse(dataStr));} catch (ParseException e) {e.printStackTrace();}int week = cl.get(Calendar.WEEK_OF_YEAR);// cl.add(Calendar.DAY_OF_MONTH, -7);int year = cl.get(Calendar.YEAR);if (week < cl.get(Calendar.WEEK_OF_YEAR)) {year += 1;}//获取周几  int dayNum = cl.get(Calendar.DAY_OF_WEEK);m.put("WEEKNUM", week);m.put("YEARNUM", year);m.put("DAYNUM", dayNum);System.out.println(year + "年第" + week + "周");return m;}/** * 获取指定时间 *  * @param yearNum *            年数 1700-9999 * @param weekNum *            周数 至少为1 * @param sno *            第几天 至少为1 * @return */public static String getDateStringByYearNumAndWeekNumAndSno(int yearNum, int weekNum, int sno) {if (yearNum < 1700 || yearNum > 9999) {return "年份超限";}if (weekNum < 1 || weekNum > 53) {return "周数错误";}Date startDay = getYearFirst(yearNum);// 获取某年的第一天SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String startDayString = formatter.format(startDay);Calendar cal = Calendar.getInstance();cal.setTime(startDay);int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1; // 获取某年第一天所在星期// 0:周日;1:周一;2:周二;3:周三// ,....if (week_index == 0) {// 如果是周日,第一天if (startDay != null) {String dateString = getFutureDateTimeByDays(startDayString, (weekNum - 1) * 7 + (sno - 1) + 1);// 加1天,变成中国日历return dateString;}} else {// 不是第一天,获取第一天String firstDateString = getFutureDateTimeByDays(startDayString, -week_index);String dateString = getFutureDateTimeByDays(firstDateString, (weekNum) * 7 + (sno - 1) + 1);// 加一天,变成中国日历, modify by qipeng.yan weekNum不需要-1//兼容3.3之前的旧数据//String date_error = PropertiesUtil.readValue("handle_date_error");String date_error = HmsConfig.getHandle_date_error();if ("1".equals(date_error)) {dateString = getFutureDateTimeByDays(firstDateString, (weekNum - 1) * 7 + (sno - 1) + 1);}return dateString;}return "";}/** * 获取某年第一天日期 *  * @param year *            年份 * @return Date */public static Date getYearFirst(int year) {Calendar calendar = Calendar.getInstance();calendar.clear();calendar.set(Calendar.YEAR, year);Date currYearFirst = calendar.getTime();return currYearFirst;}/** *  *方法描述:获取某个时间几年后的时间 *  *@param oneDate *@param yearNum *@return */public static Date getFutureDateByYear(Date oneDate, int yearNum) {Calendar cal = Calendar.getInstance();cal.setTime(oneDate);cal.add(Calendar.YEAR, yearNum);return cal.getTime();}/** * 取当前系统日期,并按指定格式或者是默认格式返回 *  * @param format * @return */public static String getNow(String format) {if (null == format || "".equals(format)) {format = "yyyy-MM-dd HH:mm:ss";}SimpleDateFormat sdf = new SimpleDateFormat(format);String date = sdf.format(new Date());return date;}/** * 将字符型转换为指定格式日期型 *  * @param _date *            需要转换成日期的字符串 * @param format *            与需要转换成日期的字符串相匹配的格式 * @return */public static Date stringToDate(String _date, String format) {if (null == format || "".equals(format)) {format = "yyyy-MM-dd HH:mm:ss";}SimpleDateFormat sdf = new SimpleDateFormat(format);Date date = null;try {date = sdf.parse(_date);} catch (ParseException e) {e.printStackTrace();}return date;}/** * 将日期型转换为指定格式的字符串 *  * @param date *            日期 * @param format *            格式 * @return */public static String dateToString(Date date, String format) {if (null == format || "".equals(format)) {format = "yyyy年MM月dd日 HH点mm分";}SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}public static int isTodayCurrentTimeHour(String createTime) {int result = DateUtils.isTodayCurrentTime(DateUtils.stringToDate(createTime, ""));return result;}/** * 时间判断,根据返回的标志位进行业务处理 (目前这个方法签到签退模块在使用) *  * @param args * @throws Exception */public static int isTodayCurrentTime(Date beginDate) {// 系统当前时间Long now = (DateUtils.getNow().getTime()) / 1000L;// 打卡系统传过来的时间Long sourse = (Long) (beginDate.getTime() / 1000L);if (sourse > now) {return 2;}Long differ = now - sourse;int result = 0;// 时间标志位if (differ <= 60L) {// 0-60(包含)秒显示 秒之前result = 2;// 60秒之内} else if (differ <= (60L * 60L)) {// 如果是在60分钟内result = 2;} else if (differ <= 60L * 60L * 24) {// 如果是在1天内result = 3;}return result;}/** * 当月第一天 *  * @return */public static String getFirstDay() {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();Date theDate = calendar.getTime();GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();gcLast.setTime(theDate);gcLast.set(Calendar.DAY_OF_MONTH, 1);String day_first = df.format(gcLast.getTime());StringBuffer str = new StringBuffer().append(day_first).append(" 00:00:00");return str.toString();}/** * 当月最后一天 *  * @return */public static String getLastDay() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));SimpleDateFormat simpleFormate = new SimpleDateFormat("yyyy-MM-dd");return simpleFormate.format(calendar.getTime()).concat(" 23:59:59");}/** * dayNumt天前的时间 *  * @param monthNum *            天数 * @return yyyy-MM-dd */public static String getAgoDateTimeByDay(int dayNum) {Format f = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();c.add(Calendar.DATE, dayNum);return f.format(c.getTime());}/** *  *方法描述:获取系统当前时间前几天时间 *  * @return */public static Date getAgoDateByDay(int dayNum) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, dayNum);return cal.getTime();}/** *方法描述:返回昨天日期 *  *@return */public static String getYestDate() {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);String yesterday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());return yesterday;}/** * 方法描述:获取对应的星期 1,2,3,4,5,6,7, * @param date * @return   */public static int getDay(Date date) {Calendar cal = Calendar.getInstance();cal.setTime(date);int week = cal.get(Calendar.DAY_OF_WEEK) - 1;if (week == 0) {week = 7;}return week;}/** * 方法描述:计算两个日期间的天数 * @param smdate * @param bdate * @return * @throws ParseException */public static int daysBetween(String starDate, String endDate) throws ParseException {if (starDate == null || endDate == null) {return 1;}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date smdate = sdf.parse(sdf.format(sdf.parse(starDate)));Date bdate = sdf.parse(sdf.format(sdf.parse(endDate)));Calendar cal = Calendar.getInstance();cal.setTime(smdate);long time1 = cal.getTimeInMillis();cal.setTime(bdate);long time2 = cal.getTimeInMillis();long between_days = (time2 - time1) / (1000 * 3600 * 24);return Integer.parseInt(String.valueOf(between_days)) + 1;}/** * 获取一年的周数 * @param year * @return */public static int getMaxWeekNumOfYear(int year) {Calendar c = new GregorianCalendar();c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);return getWeekNumAndYearNum(c.getTime()).get(WEEKNUM);}/** * 根据年份得到周数 * @param year * @return */public static int getWeekNumByYear(int year) {String date = year + "-12-25";Map m = DateUtils.getYearNumAndWeekNum(date);return Integer.valueOf(m.get("WEEKNUM").toString());}/** * 获取某年最后一天的星期数(周一为1,周日为7) * @param year * @return */public static int getDayOfWeekByYear(int year) {String date = year + "-12-25";Map m = DateUtils.getYearNumAndWeekNum(date);return Integer.valueOf(m.get("DAYNUM").toString())-1;}public static void main(String[] args) throws Exception {// 当字符串转日期型的时候,format的格式,一定要和需要转成日期的字符串相匹配// String dateString="2015-01-06 17:16:49";// String result=stringToDate(dateString, format).toString();// System.out.println("字符转日期:"+result.toString());// System.out.println("日期转字符串:"+dateToString(stringToDate(dateString,// format),"yyyy年MM月dd日 hh点:mm分:ss秒"));// String date =// DateUtils.dateToString(DateUtils.stringToDate(dateString,""),"yyyy年MM月dd日 HH点mm分");// getNowDate();/* * Date currentTime = new Date(); SimpleDateFormat formatter = new * SimpleDateFormat("yyyy-MM-dd"); String dateString = * formatter.format(currentTime); System.out.println(dateString); *///String str = getWeek(DateUtils.dateToStr(new Date()), "1");//System.out.println(str);//System.out.println(DateUtils.getMonthFirstDay());//String mondayStr = DateUtils.getWeek(DateUtils.dateToStr(new Date()), "1");//System.out.println(mondayStr);}/* * public static void main(String[] args) throws Exception { * System.out.println(getDateStringByYearNumAndWeekNumAndSno(2014,40,4)); * System.out.println(getYearNumAndWeekNum("2014-10-02")); } */}
阅读全文
1 0