日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java處理日期的工具類DateUtil

瀏覽:111日期:2022-08-22 11:13:06

java中處理日期的工具類DateUtil,供大家參考,具體內容如下

package com.leo.demo.othertest;import org.slf4j.LoggerFactory;import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.logging.Logger;/** * 時間工具類 */public final class DateUtil { private static Logger logger = (Logger) LoggerFactory.getLogger(DateUtil.class); /** * 日期格式 */ public interface DATE_PATTERN { String HHMMSS = 'HHmmss'; String HH_MM_SS = 'HH:mm:ss'; String HH_MM = 'HH:mm'; String YYYY = 'yyyy'; String YYYYMMDD = 'yyyyMMdd'; String YYYYMM = 'yyyyMM'; String YYYY_MM_DD = 'yyyy-MM-dd'; String YYYYMMDDHHMMSS = 'yyyyMMddHHmmss'; String YYYYMMDDHHMMSSSSS = 'yyyyMMddHHmmssSSS'; String YYYY_MM_DD_HH_MM_SS = 'yyyy-MM-dd HH:mm:ss'; } /** * 獲取當前時間 * * @return Timestamp對象 */ public static Timestamp getCurrontTime() { Timestamp sqlTimestamp = new Timestamp(new Date().getTime()); return sqlTimestamp; } /** * 將Date類型轉換成String類型 * * @param date Date對象 * @return 形如:'yyyy-MM-dd HH:mm:ss' */ public static String date2String(Date date) { return date2String(date, DATE_PATTERN.YYYY_MM_DD_HH_MM_SS); } /** * 將Date按格式轉化成String * * @param date Date對象 * @param pattern 日期類型 * @return String */ public static String date2String(Date date, String pattern) { if (date == null || pattern == null) { return null; } return new SimpleDateFormat(pattern).format(date); } /** * 將String類型轉換成Date類型 * * @param date Date對象 * @return */ public static Date string2Date(String date) { SimpleDateFormat format = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD_HH_MM_SS); try { return format.parse(date); } catch (ParseException e) { return null; } } /** * 獲取某日期N天后的日期 * * @param datestr * @param day * @return */ public static Date getBeforeAfterDate(String datestr, int day) { SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD_HH_MM_SS); java.sql.Date olddate = null; try { df.setLenient(false); olddate = new java.sql.Date(df.parse(datestr).getTime()); } catch (ParseException e) { throw new RuntimeException('日期轉換錯誤'); } Calendar cal = new GregorianCalendar(); cal.setTime(olddate); int Year = cal.get(Calendar.YEAR); int Month = cal.get(Calendar.MONTH); int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year); cal.set(Calendar.MONTH, Month); cal.set(Calendar.DAY_OF_MONTH, NewDay); return new Date(cal.getTimeInMillis()); } /** * @return * @Description: 獲取當前日期的前一天 * @ReturnType String * @author: liyl * @Created 2015年11月13日 下午5:11:14 */ public static Date currentBeforeDay() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DAY_OF_MONTH, -1); return calendar.getTime(); } /** * @return * @Description: 獲取當前日期的后一天 * @ReturnType Date * @author: liyl * @Created 2015年11月13日 下午5:14:54 */ public static Date currentNextDay() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DAY_OF_MONTH, 1); return calendar.getTime(); } /** * 獲取指定日期星期幾(int) * * @param dt * @return */ public static int getWeekOfInt(Date dt) { int[] weekDays = {7, 1, 2, 3, 4, 5, 6}; Calendar cal = Calendar.getInstance(); cal.setTime(dt); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) { w = 0; } return weekDays[w]; } /** * 獲取指定日期星期幾 * * @param dt * @return */ public static String getWeekOfDate(Date dt) { String[] weekDays = {'星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'}; Calendar cal = Calendar.getInstance(); cal.setTime(dt); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) { w = 0; } return weekDays[w]; } /** * 時間比大小 * * @param DATE1 * @param DATE2 * @param pattern * @return */ public static int compareDate(String DATE1, String DATE2, String pattern) { DateFormat df = new SimpleDateFormat(pattern); try { Date dt1 = df.parse(DATE1); Date dt2 = df.parse(DATE2); if (dt1.getTime() > dt2.getTime()) {System.out.println('dt1 在dt2前');return 1; } else if (dt1.getTime() < dt2.getTime()) {System.out.println('dt1在dt2后');return -1; } else {return 0; } } catch (Exception exception) { exception.printStackTrace(); } return 0; } /** * 在一個時間上加上或減去分鐘 * * @param date long * @param i int * @return Date */ public static Date addOrMinusMinutes(Date date, int i) { Date rtn = null; GregorianCalendar cal = new GregorianCalendar(); cal.setTime(date); cal.add(GregorianCalendar.MINUTE, i); rtn = cal.getTime(); return rtn; } /** * 按照指定格式返回格式好的當前日期 * * @param dateFormat 默認yyyy-MM-dd * @return */ public static String getCurrentDateString(String dateFormat) { return DateUtil.format(new Date(), DATE_PATTERN.YYYY_MM_DD); } /** * 說明 將日期格式化字符串,為null的返回空字符串 * * @param date * @return */ public static String format(Date date) { if (null == date) return ''; SimpleDateFormat sf = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD); return sf.format(date); } /** * 說明 將日期格式化字符串,為null的返回空字符串 * * @param date 日期 * @param dateFormat 格式化字符串,比如:yyyy-MM-dd * @return */ public static String format(Date date, String dateFormat) { if (null == dateFormat || ''.equals(dateFormat)) return DateUtil.format(date); if (null == date) return ''; SimpleDateFormat sf = new SimpleDateFormat(dateFormat); return sf.format(date); } /** * @param source 要進行解析的源字符串 * @return * @說明 將指定的字符串格解析成日期類型,格式默認為:yyyy-MM-dd */ public static Date parase(String source) { SimpleDateFormat sf = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD); try { return sf.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; } /** * @param source 要進行解析的源字符串 * @param dateFormat 要解析的日期格式。 * @return * @說明 將指定的字符串格解析成日期類型 例:如果日期source=20131210,則dateFormat應為:yyyyMMdd,兩個應對應 */ public static Date parase(String source, String dateFormat) { SimpleDateFormat sf = new SimpleDateFormat(dateFormat); try { return sf.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; } /** * @param date * @param days * @說明 對指定的日期增加或減少指定的天數 */ public static Date addDays(Date date, int days) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_MONTH, days); return cal.getTime(); } /** * @param date * @param days * @說明 對指定的日期增加或減少指定的天數 */ public static Calendar addDays(Calendar date, int days) { date.add(Calendar.DAY_OF_MONTH, days); return date; } /** * @param date * @param months * @return * @說明 對指定的日期增加或減少指定的月數 */ public static Date addMonths(Date date, int months) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, months); return cal.getTime(); } /** * @param date * @param months * @return * @說明 對指定的日期增加或減少指定的月數 */ public static Calendar addMonths(Calendar date, int months) { date.add(Calendar.MONTH, months); return date; } /** * @param date * @param hours * @return * @說明 對指定的日期增加或減少指定的小時數 */ public static Date addHours(Date date, int hours) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.HOUR_OF_DAY, hours); return cal.getTime(); } /** * 對指定的日期增加或減少指定的小時數 * * @param date * @param hours * @return */ public static Calendar addHours(Calendar date, int hours) { date.add(Calendar.HOUR_OF_DAY, hours); return date; } /** * 以字符串形式返回當前時間的毫秒數 * * @return */ public static String getTimeMillions() { Calendar cal = Calendar.getInstance(); long lt = cal.getTimeInMillis(); return String.valueOf(lt); } /** * 獲取當前月的第一天 * * @return 當前月的第一天 */ public static String getMonthFirstDay() { SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN.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 String getMonthLastDay() { Calendar calendar = Calendar.getInstance(); // 最后一天 int maxday = calendar.getActualMaximum(Calendar.DATE); calendar.set(Calendar.DATE, maxday); SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD); Date theDate = calendar.getTime(); String s = df.format(theDate); StringBuffer str = new StringBuffer().append(s); return str.toString(); } /** * 獲取當前月的第一天,精確到時分秒 * * @return 當前月的第一天,精確到時分秒 */ public static Date getFirstDayOfMonth() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date date = calendar.getTime(); return date; } /** * 獲得往數據庫字段類型為Date型時,插入的時間 * * @param date 默認為當前日期,如果為空時 方法會自動new Date() * @param dateFormat 默認為yyyy-MM-dd * @return */ public static java.sql.Date paraseSqlDate(String date, String dateFormat) { try { if (date == null || date.length() == 0) {return new java.sql.Date(new Date().getTime()); } else {if (dateFormat == null) dateFormat = DateUtil.DATE_PATTERN.YYYY_MM_DD;SimpleDateFormat sf = new SimpleDateFormat(dateFormat);Date d = sf.parse(date);return new java.sql.Date(d.getTime()); } } catch (Exception e) { // TODO: handle exception } return null; } /** * 將日期按照特定格式轉換成字符串 * * @param date * @param pattern * @return */ public static String formatString(Date date, String pattern) { SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); return dateFormat.format(date); } /** * 將日期字符串轉換為日期 * * @param strDate * @param mask * @return * @throws ParseException */ public static Timestamp convertStringToTimestamp(String strDate, String mask) throws ParseException { SimpleDateFormat df; Date date = null; df = new SimpleDateFormat(mask); try { date = df.parse(strDate); return new Timestamp(date.getTime()); } catch (ParseException pe) { throw new ParseException(pe.getMessage(), pe.getErrorOffset()); } } /** * 月份相加 add by yuanjq * * @param timest1 * @param month * @return */ public static Timestamp DateAddMonth(Timestamp timest1, int month) { Calendar cal = Calendar.getInstance(); cal.setTime(timest1); cal.add(Calendar.MONTH, month); return new Timestamp(cal.getTimeInMillis()); } /** * 對輸入的日期進行格式化, 如果輸入的日期是null則返回空串. * FrameWork使用 * * @param dtDate java.sql.Timestamp 需要進行格式化的日期字符串 * @param strFormatTo String 要轉換的日期格式 * @return String 經過格式化后的字符串 */ public static String getFormattedDate(java.sql.Timestamp dtDate, String strFormatTo) { if (dtDate == null) { return ''; } if (dtDate.equals(new java.sql.Timestamp(0))) { return ''; } String newStrFormateTo = strFormatTo; newStrFormateTo = newStrFormateTo.replace(’/’, ’-’); SimpleDateFormat formatter = new SimpleDateFormat('yyyy'); if (Integer.parseInt(formatter.format(dtDate)) < 1900) { return ''; } else { formatter = new SimpleDateFormat(newStrFormateTo); return formatter.format(dtDate); } } /** * 獲取當前時間年月日 * * @return */ public static String getCurrentDateYMR() { SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN.YYYYMMDD); return sdf.format(System.currentTimeMillis()); } /** * 根據字符串以及格式化方式獲取date對象 * * @param strDate * @param strFormat * @return * @throws ParseException */ public static Date getDate(String strDate, String strFormat) throws ParseException { SimpleDateFormat format = new SimpleDateFormat(strFormat); Date date = format.parse(strDate); return date; } /** * 根據字符串以及格式化方式獲取時間戳 * * @param strDate * @param strFormat * @return * @throws ParseException */ public static Timestamp getTimestamp(String strDate, String strFormat) throws ParseException { Date date = getDate(strDate, strFormat); Timestamp timestamp = new Timestamp(date.getTime()); return timestamp; } /** * 根據Date獲取格式化后的字符串 * * @param date * @param strFormat * @return * @throws ParseException */ public static String getStringDate(Date date, String strFormat) throws ParseException { if (date == null) { return ''; } SimpleDateFormat format = new SimpleDateFormat(strFormat); String strDate = format.format(date); return strDate; } /** * 根據時間戳格式化時間 * * @param timestamp * @param strFormat * @return * @throws ParseException */ public static String getStringTimestamp(Timestamp timestamp, String strFormat) throws ParseException { if (timestamp == null) { return ''; } String strTimestamp = getStringDate((Date) timestamp, strFormat); return strTimestamp; } /** * 根據時間戳偏移幾個月 * * @param timestamp * @param months * @return * @throws ParseException */ public static Timestamp addMonth(Timestamp timestamp, int months) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.MONTH, months); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間戳偏移幾年 * * @param timestamp * @param years * @return * @throws ParseException */ public static Timestamp addYear(Timestamp timestamp, int years) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.YEAR, years); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間戳偏移幾天 * * @param timestamp * @param days * @return * @throws ParseException */ public static Timestamp addDay(Timestamp timestamp, int days) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.DAY_OF_MONTH, days); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間戳偏移幾小時 * * @param timestamp * @param hours * @return * @throws ParseException */ public static Timestamp addHour(Timestamp timestamp, int hours) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.HOUR_OF_DAY, hours); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間戳偏移幾分鐘 * * @param timestamp * @param minutes * @return * @throws ParseException */ public static Timestamp addMinute(Timestamp timestamp, int minutes) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.MINUTE, minutes); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間戳偏移幾秒鐘 * * @param timestamp * @param seconds * @return * @throws ParseException */ public static Timestamp addSecond(Timestamp timestamp, int seconds) throws ParseException { GregorianCalendar grc = new GregorianCalendar(); grc.setTime((Date) timestamp); grc.add(GregorianCalendar.SECOND, seconds); return new Timestamp(grc.getTime().getTime()); } /** * 根據時間的毫秒值格式化時間 * * @param time * @param strFormat * @return * @throws ParseException */ public static String getTime(String time, String strFormat) throws ParseException { Timestamp endLogDateFormated = getTimestamp(time, strFormat); String sTime = getStringTimestamp(endLogDateFormated, DATE_PATTERN.YYYYMMDD); return sTime; } /** * 轉換時間格式化方式 * * @param time * @param strFormat * @return * @throws ParseException */ public static String getTimeNew(String time, String strFormat) throws ParseException { Timestamp endLogDateFormated = getTimestamp(time, strFormat); String sTime = getStringTimestamp(endLogDateFormated, DATE_PATTERN.YYYY_MM_DD_HH_MM_SS); return sTime; } /** * 根據傳入的日期字符串轉換成相應的日期對象, * 如果字符串為空或不符合日期格式,則返回當前時間。 * FrameWork使用 * * @param strDate String 日期字符串 * @return java.sql.Timestamp 日期對象 */ public static java.sql.Timestamp getDateByString(String strDate) { if (strDate.trim().equals('')) { return getCurrentDate(); } try { strDate = getFormattedDate(strDate, DATE_PATTERN.YYYY_MM_DD_HH_MM_SS) + '.000000000'; return java.sql.Timestamp.valueOf(strDate); } catch (Exception ex) { return getCurrentDate(); } } /** * 獲取當前數據庫時間 * * @return */ public static Timestamp getCurrentDate() { try { SimpleDateFormat formatter = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD_HH_MM_SS + '.0'); return Timestamp.valueOf(formatter.format(new Date())); } catch (Exception e) { return null; } } /** * 對輸入的日期字符串進行格式化, * 如果輸入的是0000/00/00 00:00:00則返回空串. * FrameWork使用 * * @param strDate String 需要進行格式化的日期字符串 * @param strFormatTo String 要轉換的日期格式 * @return String 經過格式化后的字符串 */ public static String getFormattedDate(String strDate, String strFormatTo) { if ((strDate == null) || strDate.trim().equals('')) { return ''; } strDate = strDate.replace(’/’, ’-’); strFormatTo = strFormatTo.replace(’/’, ’-’); if (strDate.equals('0000-00-00 00:00:00') ||strDate.equals('1800-01-01 00:00:00')) { return ''; } String formatStr = strFormatTo; //'yyyyMMdd'; if (strDate.trim().equals('')) { //(strDate == null) || return ''; } switch (strDate.trim().length()) { case 6:if (strDate.substring(0, 1).equals('0')) { formatStr = 'yyMMdd';} else { formatStr = 'yyyyMM';}break; case 8:formatStr = 'yyyyMMdd';break; case 10:if (strDate.indexOf('-') == -1) { formatStr = 'yyyy/MM/dd';} else { formatStr = 'yyyy-MM-dd';}break; case 11:if (strDate.getBytes().length == 14) { formatStr = 'yyyy年MM月dd日';} else { return '';}break; case 14:formatStr = 'yyyyMMddHHmmss';break; case 19:if (strDate.indexOf('-') == -1) { formatStr = 'yyyy/MM/dd HH:mm:ss';} else { formatStr = 'yyyy-MM-dd HH:mm:ss';}break; case 21:if (strDate.indexOf('-') == -1) { formatStr = 'yyyy/MM/dd HH:mm:ss.S';} else { formatStr = 'yyyy-MM-dd HH:mm:ss.S';}break; default:return strDate.trim(); } try { SimpleDateFormat formatter = new SimpleDateFormat(formatStr); Calendar calendar = Calendar.getInstance(); calendar.setTime(formatter.parse(strDate)); formatter = new SimpleDateFormat(strFormatTo); return formatter.format(calendar.getTime()); } catch (Exception e) { return ''; } } /** * 處理微信日期 * * @param date * @return */ public static String dealWechatDate(String date) { String result; if (date == null || ''.equals(date)) { result = date; } else if (date.indexOf('.') > -1) { result = date.replace('.', '-'); } else if (date.indexOf('年') > -1) { result = date.replace('年', '-').replace('月', '-').replace('日', ''); } else if (date.indexOf('-') > -1) { result = date.replace('年', '-').replace('月', '-').replace('日', ''); } else { result = date; } return result; } /** * 獲取兩個日期相差的月數 * * @param d1 較大的日期 * @param d2 較小的日期 * @return 如果d1>d2返回 月數差 否則返回0 */ public static int monthsBetween(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); if (c1.getTimeInMillis() < c2.getTimeInMillis()) return 0; int year1 = c1.get(Calendar.YEAR); int year2 = c2.get(Calendar.YEAR); int month1 = c1.get(Calendar.MONTH); int month2 = c2.get(Calendar.MONTH); int day1 = c1.get(Calendar.DAY_OF_MONTH); int day2 = c2.get(Calendar.DAY_OF_MONTH); // 獲取年的差值 假設 d1 = 2015-8-16 d2 = 2011-9-30 int yearInterval = year1 - year2; // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 這樣就得到了相差的年數 if (month1 < month2 || month1 == month2 && day1 < day2) yearInterval--; // 獲取月數差值 int monthInterval = (month1 + 12) - month2; if (day1 < day2) monthInterval--; monthInterval %= 12; return yearInterval * 12 + monthInterval; } /** * 計算date2 - date1之間相差的天數 * * @param date1 * @param date2 * @return 如果d1>d2返回 月數差 否則返回0 */ public static int daysBetween(Date date1, Date date2) { DateFormat sdf = new SimpleDateFormat(DATE_PATTERN.YYYYMMDD); Calendar cal = Calendar.getInstance(); try { Date d1 = sdf.parse(date2String(date1, DATE_PATTERN.YYYYMMDD)); Date d2 = sdf.parse(date2String(date2, DATE_PATTERN.YYYYMMDD)); cal.setTime(d1); long time1 = cal.getTimeInMillis(); cal.setTime(d2); long time2 = cal.getTimeInMillis(); return Integer.parseInt(String.valueOf((time2 - time1) / 86400000L)); } catch (Exception e) { e.printStackTrace(); } return 0; } /** * 計算date2 - date1之間相差的分鐘 * * @param date1 * @param date2 * @return */ @SuppressWarnings('deprecation') public static int minutesBetween(Date date1, Date date2) { Calendar cal = Calendar.getInstance(); // date1.setSeconds(0); cal.setTime(date1); long time1 = cal.getTimeInMillis(); cal.setTime(date2); long time2 = cal.getTimeInMillis(); if (time2 - time1 <= 0) { return 0; } else { return Integer.parseInt(String.valueOf((time2 - time1) / 60000L)) + 1; } } /** * 計算date2 - date1之間相差的秒 * * @param date1 * @param date2 * @return */ @SuppressWarnings('deprecation') public static int secondBetween(Date date1, Date date2) { Calendar cal = Calendar.getInstance(); // date1.setSeconds(0); cal.setTime(date1); long time1 = cal.getTimeInMillis(); cal.setTime(date2); long time2 = cal.getTimeInMillis(); if (time2 - time1 <= 0) { return 0; } else { return Integer.parseInt(String.valueOf((time2 - time1) / 1000L)) + 1; } } /** * 計算date2 - date1之間相差的毫秒 * * @param date1 * @param date2 * @return */ @SuppressWarnings('deprecation') public static int millisecondBetween(Date date1, Date date2) { Calendar cal = Calendar.getInstance(); cal.setTime(date1); long time1 = cal.getTimeInMillis(); cal.setTime(date2); long time2 = cal.getTimeInMillis(); if (time2 - time1 <= 0) { return 0; } else { return Integer.parseInt(String.valueOf((time2 - time1))); } }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲永久精品唐人导航网址| 捆绑调教美女网站视频一区| 国产毛片久久久| 日韩一级欧洲| 蜜臀久久99精品久久久久久9| 丝袜美腿高跟呻吟高潮一区| 香蕉人人精品| 精品亚洲成人| 欧美久久精品一级c片| 日韩欧美激情电影| 国产精品一区2区3区| 国产一区2区| 免费国产自久久久久三四区久久| 国产精品日本| 欧美日本三区| 久久人人88| 国产亚洲欧美日韩在线观看一区二区 | 国产极品一区| 欧美男人天堂| 一本综合精品| 日韩欧美精品一区| 日本在线观看不卡视频| 日本一区二区高清不卡| 好看的亚洲午夜视频在线| 国产日韩高清一区二区三区在线| 日韩欧美一区二区三区在线观看 | 亚洲制服少妇| 精品视频一区二区三区四区五区| 不卡在线一区二区| 里番精品3d一二三区| 国产一区欧美| 国产欧美精品久久| 久久高清一区| 999精品色在线播放| 国产情侣久久| 中文无码久久精品| 久久天堂成人| 亚洲精选成人| 激情视频一区二区三区| 中文字幕一区二区三区四区久久 | 日韩在线卡一卡二| 伊人久久高清| 久久精品国产亚洲aⅴ| 日韩欧美2区| 在线亚洲精品| 国内精品福利| 国产专区一区| 桃色一区二区| 久久免费高清| 亚洲va在线| 欧美a级片一区| 国产一区二区三区亚洲综合| 欧美一区影院| 国产亚洲精品精品国产亚洲综合| 亚洲免费网址| 蜜桃av一区二区| 一区二区三区网站| 婷婷综合福利| 青草av.久久免费一区| 久久精品 人人爱| 国产精品成人**免费视频| 国产精品亲子伦av一区二区三区 | 三级欧美在线一区| 亚洲精品无播放器在线播放| 日本一不卡视频| 久久超碰99| 日韩黄色大片| 香蕉国产精品| 免费在线观看不卡| 国产日韩在线观看视频| 精品精品国产三级a∨在线| 天堂√中文最新版在线| 99精品视频在线| 午夜亚洲一区| 国产精品免费不| 中文字幕在线视频网站| 久久国产影院| 伊人久久亚洲| 国产成人精品一区二区三区视频| 午夜精品成人av| 婷婷成人av| 精品一区二区三区的国产在线观看| 亚洲黄色免费av| 午夜亚洲一区| 色婷婷综合网| 亚洲精品欧美| 亚洲成人精品| 国产免费播放一区二区| 久久久久午夜电影| 国产乱码精品一区二区三区四区| 亚洲综合在线电影| 免费久久精品视频| 岛国av在线播放| 亚洲九九精品| 久久中文亚洲字幕| 久久免费精品| 日韩va亚洲va欧美va久久| 久久久久国产精品一区三寸| 91成人在线精品视频| 久久精品国产www456c0m| 国产精品久久久一区二区| 九九综合九九| 日本一二区不卡| 国产精品白丝av嫩草影院| 亚洲+小说+欧美+激情+另类| 日韩视频网站在线观看| 日韩福利视频一区| 99re国产精品| 久久国产小视频| 成人国产精品一区二区免费麻豆| 综合亚洲自拍| 亚洲免费播放| 久久久噜噜噜| 欧美精品资源| 成人一区不卡| 丰满少妇一区| 水蜜桃精品av一区二区| 国产极品模特精品一二| 日本三级亚洲精品| 日韩欧美2区| 色婷婷成人网| 久久不射网站| 国产精品女主播一区二区三区| 99久久精品国产亚洲精品| 九九99久久精品在免费线bt| 日韩精品乱码av一区二区| 西西人体一区二区| 午夜精品成人av| 色88888久久久久久影院| 国产+成+人+亚洲欧洲在线| 国产极品一区| 久久99性xxx老妇胖精品| 欧美精品中文字幕亚洲专区| 亚欧洲精品视频在线观看| 丝袜脚交一区二区| 在线看片日韩| 亚洲欧美日韩视频二区| 亚洲精品a级片| 天堂成人免费av电影一区 | 国产欧美一区二区三区米奇| 国产亚洲高清在线观看| 欧美激情aⅴ一区二区三区 | 99国产精品视频免费观看一公开| 国产亚洲精品久久久久婷婷瑜伽| 免费观看久久av| 欧美理论视频| 国产视频亚洲| 日韩超碰人人爽人人做人人添| 日韩激情网站| 91综合网人人| 黄色不卡一区| 日韩精品福利一区二区三区| 欧美在线首页| 国产精品yjizz视频网| av亚洲在线观看| 日本一区二区三区中文字幕| 国产精品啊啊啊| 亚洲女同av| 日韩精品高清不卡| 播放一区二区| 夜夜嗨av一区二区三区网站四季av| 一区二区三区午夜视频| 久久中文欧美| 亚洲欧美日韩国产综合精品二区| 国产三级精品三级在线观看国产| 天堂av在线| 亚洲综合专区| 日韩精品免费一区二区在线观看| 亚洲人成精品久久久| 日韩成人三级| 国产精品香蕉| 日韩中文字幕1| 伊人久久大香线蕉av不卡| 亚洲资源在线| 不卡一区2区| 欧美交a欧美精品喷水| 石原莉奈在线亚洲二区| 久久精品不卡| 久久91导航| www.九色在线| 精品欧美日韩精品| 97精品资源在线观看| 亚洲女人av| 亚洲电影在线| 在线一区av| 日韩在线中文| 91麻豆国产自产在线观看亚洲| 欧美偷窥清纯综合图区| 国产亚洲激情| 国产精品女主播一区二区三区| 日韩在线免费| 天堂√8在线中文| 热三久草你在线| 日韩欧美一区二区三区在线视频| 精品国产精品久久一区免费式 | 欧美极品中文字幕| 国产欧美丝祙| 国产精品第一国产精品| 国产伦一区二区三区| 国产精品一在线观看|