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

您的位置:首頁技術(shù)文章
文章詳情頁

深度思考JDK8中日期類型該如何使用詳解

瀏覽:223日期:2024-07-21 10:25:44

在JDK8之前,處理日期時(shí)間,我們主要使用3個(gè)類, Date 、 SimpleDateFormat 和 Calendar 。

這3個(gè)類在使用時(shí)都或多或少的存在一些問題,比如 SimpleDateFormat 不是線程安全的,

比如 Date 和 Calendar 獲取到的月份是0到11,而不是現(xiàn)實(shí)生活中的1到12,關(guān)于這一點(diǎn),《阿里巴巴Java開發(fā)手冊(cè)》中也有提及,因?yàn)楹苋菀追稿e(cuò):

深度思考JDK8中日期類型該如何使用詳解

不過,JDK8推出了全新的日期時(shí)間處理類解決了這些問題,比如 Instant 、 LocalDate 、 LocalTime 、 LocalDateTime 、 DateTimeFormatter ,在《阿里巴巴Java開發(fā)手冊(cè)》中也推薦使用 Instant 、

LocalDateTime 、 DateTimeFormatter :

深度思考JDK8中日期類型該如何使用詳解

但我發(fā)現(xiàn)好多項(xiàng)目中其實(shí)并沒有使用這些類,使用的還是之前的 Date 、 SimpleDateFormat 和 Calendar ,所以本篇博客就講解下JDK8新推出的日期時(shí)間類,主要是下面幾個(gè):

Instant LocalDate LocalTime LocalDateTime DateTimeFormatter1. Instant 1.1 獲取當(dāng)前時(shí)間

既然 Instant 可以代替 Date 類,那它肯定可以獲取當(dāng)前時(shí)間:

Instant instant = Instant.now();System.out.println(instant);

輸出結(jié)果:

2020-06-10T08:22:13.759Z

細(xì)心的你會(huì)發(fā)現(xiàn),這個(gè)時(shí)間比北京時(shí)間少了8個(gè)小時(shí),如果要輸出北京時(shí)間,可以加上默認(rèn)時(shí)區(qū):

System.out.println(instant.atZone(ZoneId.systemDefault()));

輸出結(jié)果:

2020-06-10T16:22:13.759+08:00[Asia/Shanghai]

1.2 獲取時(shí)間戳

Instant instant = Instant.now();// 當(dāng)前時(shí)間戳:單位為秒System.out.println(instant.getEpochSecond());// 當(dāng)前時(shí)間戳:單位為毫秒System.out.println(instant.toEpochMilli());

輸出結(jié)果:

1591777752

1591777752613

當(dāng)然,也可以通過 System.currentTimeMillis() 獲取當(dāng)前毫秒數(shù)。

1.3 將long轉(zhuǎn)換為Instant

1)根據(jù)秒數(shù)時(shí)間戳轉(zhuǎn)換:

Instant instant = Instant.now();System.out.println(instant);long epochSecond = instant.getEpochSecond();System.out.println(Instant.ofEpochSecond(epochSecond));System.out.println(Instant.ofEpochSecond(epochSecond, instant.getNano()));

輸出結(jié)果:

2020-06-10T08:40:54.046Z

2020-06-10T08:40:54Z

2020-06-10T08:40:54.046Z

2)根據(jù)毫秒數(shù)時(shí)間戳轉(zhuǎn)換:

Instant instant = Instant.now();System.out.println(instant);long epochMilli = instant.toEpochMilli();System.out.println(Instant.ofEpochMilli(epochMilli));

輸出結(jié)果:

2020-06-10T08:43:25.607Z

2020-06-10T08:43:25.607Z

1.4 將String轉(zhuǎn)換為Instant

String text = '2020-06-10T08:46:55.967Z';Instant parseInstant = Instant.parse(text);System.out.println('秒時(shí)間戳:' + parseInstant.getEpochSecond());System.out.println('豪秒時(shí)間戳:' + parseInstant.toEpochMilli());System.out.println('納秒:' + parseInstant.getNano());

輸出結(jié)果:

秒時(shí)間戳:1591778815

豪秒時(shí)間戳:1591778815967

納秒:967000000

如果字符串格式不對(duì),比如修改成 2020-06-10T08:46:55.967 ,就會(huì)拋出 java.time.format.DateTimeParseException 異常,如下圖所示:

深度思考JDK8中日期類型該如何使用詳解

2. LocalDate 2.1 獲取當(dāng)前日期

使用 LocalDate 獲取當(dāng)前日期非常簡(jiǎn)單,如下所示:

LocalDate today = LocalDate.now();System.out.println('today: ' + today);

輸出結(jié)果:

today: 2020-06-10

不用任何格式化,輸出結(jié)果就非常友好,如果使用 Date ,輸出這樣的格式,還得配合 SimpleDateFormat 指定 yyyy-MM-dd 進(jìn)行格式化,一不小心還會(huì)出個(gè)bug,比如去年年底很火的1個(gè)bug,我當(dāng)時(shí)還是截了圖的:

深度思考JDK8中日期類型該如何使用詳解

這2個(gè)好友是2019/12/31關(guān)注我的,但我2020年1月2號(hào)查看時(shí),卻顯示成了2020/12/31,為啥呢?格式化日期時(shí)格式寫錯(cuò)了,應(yīng)該是 yyyy/MM/dd ,卻寫成了 YYYY/MM/dd ,剛好那周跨年,就顯示成下一年,也就是2020年了,當(dāng)時(shí)好幾個(gè)博主寫過文章解析原因,我這里就不做過多解釋了。

劃重點(diǎn):都說到這了,給大家安利下我新注冊(cè)的公眾號(hào)「申城異鄉(xiāng)人」,歡迎大家關(guān)注,更多原創(chuàng)文章等著你哦,哈哈。

2.2 獲取年月日

LocalDate today = LocalDate.now();int year = today.getYear();int month = today.getMonthValue();int day = today.getDayOfMonth();System.out.println('year: ' + year);System.out.println('month: ' + month);System.out.println('day: ' + day);

輸出結(jié)果:

year: 2020

month: 6

day: 10

獲取月份終于返回1到12了,不像 java.util.Calendar 獲取月份返回的是0到11,獲取完還得加1。

深度思考JDK8中日期類型該如何使用詳解

2.3 指定日期

LocalDate specifiedDate = LocalDate.of(2020, 6, 1);System.out.println('specifiedDate: ' + specifiedDate);

輸出結(jié)果:

specifiedDate: 2020-06-01

如果確定月份,推薦使用另一個(gè)重載方法,使用枚舉指定月份:

LocalDate specifiedDate = LocalDate.of(2020, Month.JUNE, 1);2.4 比較日期是否相等

LocalDate localDate1 = LocalDate.now();LocalDate localDate2 = LocalDate.of(2020, 6, 10);if (localDate1.equals(localDate2)) { System.out.println('localDate1 equals localDate2');}

輸出結(jié)果:

localDate1 equals localDate2

2.5 獲取日期是本周/本月/本年的第幾天

LocalDate today = LocalDate.now();System.out.println('Today:' + today);System.out.println('Today is:' + today.getDayOfWeek());System.out.println('今天是本周的第' + today.getDayOfWeek().getValue() + '天');System.out.println('今天是本月的第' + today.getDayOfMonth() + '天');System.out.println('今天是本年的第' + today.getDayOfYear() + '天');

輸出結(jié)果:

Today:2020-06-11

Today is:THURSDAY

今天是本周的第4天

今天是本月的第11天

今天是本年的第163天

2.6 判斷是否為閏年

LocalDate today = LocalDate.now();System.out.println(today.getYear() + ' is leap year:' + today.isLeapYear());

輸出結(jié)果:

2020 is leap year:true

3. LocalTime3.1 獲取時(shí)分秒

如果使用 java.util.Date ,那代碼是下面這樣的:

Date date = new Date();int hour = date.getHours();int minute = date.getMinutes();int second = date.getSeconds();System.out.println('hour: ' + hour);System.out.println('minute: ' + minute);System.out.println('second: ' + second);

輸出結(jié)果:

深度思考JDK8中日期類型該如何使用詳解

注意事項(xiàng):這幾個(gè)方法已經(jīng)過期了,因此強(qiáng)烈不建議在項(xiàng)目中使用:

深度思考JDK8中日期類型該如何使用詳解

如果使用 java.util.Calendar ,那代碼是下面這樣的:

Calendar calendar = Calendar.getInstance();// 12小時(shí)制int hourOf12 = calendar.get(Calendar.HOUR);// 24小時(shí)制int hourOf24 = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.MINUTE);int second = calendar.get(Calendar.SECOND);int milliSecond = calendar.get(Calendar.MILLISECOND);System.out.println('hourOf12: ' + hourOf12);System.out.println('hourOf24: ' + hourOf24);System.out.println('minute: ' + minute);System.out.println('second: ' + second);System.out.println('milliSecond: ' + milliSecond);

輸出結(jié)果:

深度思考JDK8中日期類型該如何使用詳解

注意事項(xiàng):獲取小時(shí)時(shí),有2個(gè)選項(xiàng),1個(gè)返回12小時(shí)制的小時(shí)數(shù),1個(gè)返回24小時(shí)制的小時(shí)數(shù),因?yàn)楝F(xiàn)在是晚上8點(diǎn),所以 calendar.get(Calendar.HOUR) 返回8,而 calendar.get(Calendar.HOUR_OF_DAY) 返回20。

如果使用 java.time.LocalTime ,那代碼是下面這樣的:

LocalTime localTime = LocalTime.now();System.out.println('localTime:' + localTime);int hour = localTime.getHour();int minute = localTime.getMinute();int second = localTime.getSecond();System.out.println('hour: ' + hour);System.out.println('minute: ' + minute);System.out.println('second: ' + second);

輸出結(jié)果:

深度思考JDK8中日期類型該如何使用詳解

可以看出,LocalTime只有時(shí)間沒有日期。

4. LocalDateTime4.1 獲取當(dāng)前時(shí)間

LocalDateTime localDateTime = LocalDateTime.now();System.out.println('localDateTime:' + localDateTime);

輸出結(jié)果:

localDateTime: 2020-06-11T11:03:21.376

4.2 獲取年月日時(shí)分秒

LocalDateTime localDateTime = LocalDateTime.now();System.out.println('localDateTime: ' + localDateTime);System.out.println('year: ' + localDateTime.getYear());System.out.println('month: ' + localDateTime.getMonthValue());System.out.println('day: ' + localDateTime.getDayOfMonth());System.out.println('hour: ' + localDateTime.getHour());System.out.println('minute: ' + localDateTime.getMinute());System.out.println('second: ' + localDateTime.getSecond());

輸出結(jié)果:

深度思考JDK8中日期類型該如何使用詳解

4.3 增加天數(shù)/小時(shí)

LocalDateTime localDateTime = LocalDateTime.now();System.out.println('localDateTime: ' + localDateTime);LocalDateTime tomorrow = localDateTime.plusDays(1);System.out.println('tomorrow: ' + tomorrow);LocalDateTime nextHour = localDateTime.plusHours(1);System.out.println('nextHour: ' + nextHour);

輸出結(jié)果:

localDateTime: 2020-06-11T11:13:44.979

tomorrow: 2020-06-12T11:13:44.979

nextHour: 2020-06-11T12:13:44.979

LocalDateTime 還提供了添加年、周、分鐘、秒這些方法,這里就不一一列舉了:

深度思考JDK8中日期類型該如何使用詳解

4.4 減少天數(shù)/小時(shí)

LocalDateTime localDateTime = LocalDateTime.now();System.out.println('localDateTime: ' + localDateTime);LocalDateTime yesterday = localDateTime.minusDays(1);System.out.println('yesterday: ' + yesterday);LocalDateTime lastHour = localDateTime.minusHours(1);System.out.println('lastHour: ' + lastHour);

輸出結(jié)果:

localDateTime: 2020-06-11T11:20:38.896

yesterday: 2020-06-10T11:20:38.896

lastHour: 2020-06-11T10:20:38.896

類似的, LocalDateTime 還提供了減少年、周、分鐘、秒這些方法,這里就不一一列舉了:

深度思考JDK8中日期類型該如何使用詳解

4.5 獲取時(shí)間是本周/本年的第幾天

LocalDateTime localDateTime = LocalDateTime.now();System.out.println('localDateTime: ' + localDateTime);System.out.println('DayOfWeek: ' + localDateTime.getDayOfWeek().getValue());System.out.println('DayOfYear: ' + localDateTime.getDayOfYear());

輸出結(jié)果:

localDateTime: 2020-06-11T11:32:31.731

DayOfWeek: 4

DayOfYear: 163

5. DateTimeFormatter

JDK8中推出了 java.time.format.DateTimeFormatter 來處理日期格式化問題,《阿里巴巴Java開發(fā)手冊(cè)》中也是建議使用 DateTimeFormatter 代替 SimpleDateFormat 。

5.1 格式化LocalDate

LocalDate localDate = LocalDate.now();System.out.println('ISO_DATE: ' + localDate.format(DateTimeFormatter.ISO_DATE));System.out.println('BASIC_ISO_DATE: ' + localDate.format(DateTimeFormatter.BASIC_ISO_DATE));System.out.println('ISO_WEEK_DATE: ' + localDate.format(DateTimeFormatter.ISO_WEEK_DATE));System.out.println('ISO_ORDINAL_DATE: ' + localDate.format(DateTimeFormatter.ISO_ORDINAL_DATE));

輸出結(jié)果:

深度思考JDK8中日期類型該如何使用詳解

如果提供的格式無法滿足你的需求,你還可以像以前一樣自定義格式:

LocalDate localDate = LocalDate.now();System.out.println('yyyy/MM/dd: ' + localDate.format(DateTimeFormatter.ofPattern('yyyy/MM/dd')));

輸出結(jié)果:

yyyy/MM/dd: 2020/06/11

5.2 格式化LocalTime

LocalTime localTime = LocalTime.now();System.out.println(localTime);System.out.println('ISO_TIME: ' + localTime.format(DateTimeFormatter.ISO_TIME));System.out.println('HH:mm:ss: ' + localTime.format(DateTimeFormatter.ofPattern('HH:mm:ss')));

輸出結(jié)果:

14:28:35.230

ISO_TIME: 14:28:35.23

HH:mm:ss: 14:28:35

5.3 格式化LocalDateTime

LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDateTime);System.out.println('ISO_DATE_TIME: ' + localDateTime.format(DateTimeFormatter.ISO_DATE_TIME));System.out.println('ISO_DATE: ' + localDateTime.format(DateTimeFormatter.ISO_DATE));

輸出結(jié)果:

2020-06-11T14:33:18.303

ISO_DATE_TIME: 2020-06-11T14:33:18.303

ISO_DATE: 2020-06-11

6. 類型相互轉(zhuǎn)換 6.1 Instant轉(zhuǎn)Date

JDK8中, Date 新增了 from() 方法,將 Instant 轉(zhuǎn)換為 Date ,代碼如下所示:

Instant instant = Instant.now();System.out.println(instant);Date dateFromInstant = Date.from(instant);System.out.println(dateFromInstant);

輸出結(jié)果:

2020-06-11T06:39:34.979Z

Thu Jun 11 14:39:34 CST 2020

6.2 Date轉(zhuǎn)Instant

JDK8中, Date 新增了 toInstant 方法,將 Date 轉(zhuǎn)換為 Instant ,代碼如下所示:

Date date = new Date();Instant dateToInstant = date.toInstant();System.out.println(date);System.out.println(dateToInstant);

輸出結(jié)果:

Thu Jun 11 14:46:12 CST 2020

2020-06-11T06:46:12.112Z

6.3 Date轉(zhuǎn)LocalDateTime

Date date = new Date();Instant instant = date.toInstant();LocalDateTime localDateTimeOfInstant = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());System.out.println(date);System.out.println(localDateTimeOfInstant);

輸出結(jié)果:

Thu Jun 11 14:51:07 CST 2020

2020-06-11T14:51:07.904

6.4 Date轉(zhuǎn)LocalDate

Date date = new Date();Instant instant = date.toInstant();LocalDateTime localDateTimeOfInstant = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());LocalDate localDate = localDateTimeOfInstant.toLocalDate();System.out.println(date);System.out.println(localDate);

輸出結(jié)果:

Thu Jun 11 14:59:38 CST 2020

2020-06-11

可以看出, Date 是先轉(zhuǎn)換為 Instant ,再轉(zhuǎn)換為 LocalDateTime ,然后通過 LocalDateTime 獲取 LocalDate 。

6.5 Date轉(zhuǎn)LocalTime

Date date = new Date();Instant instant = date.toInstant();LocalDateTime localDateTimeOfInstant = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());LocalTime toLocalTime = localDateTimeOfInstant.toLocalTime();System.out.println(date);System.out.println(toLocalTime);

輸出結(jié)果:

Thu Jun 11 15:06:14 CST 2020

15:06:14.531

可以看出, Date 是先轉(zhuǎn)換為 Instant ,再轉(zhuǎn)換為 LocalDateTime ,然后通過 LocalDateTime 獲取 LocalTime 。

6.6 LocalDateTime轉(zhuǎn)Date

LocalDateTime localDateTime = LocalDateTime.now();Instant toInstant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();Date dateFromInstant = Date.from(toInstant);System.out.println(localDateTime);System.out.println(dateFromInstant);

輸出結(jié)果:

2020-06-11T15:12:11.600

Thu Jun 11 15:12:11 CST 2020

6.7 LocalDate轉(zhuǎn)Date

LocalDate today = LocalDate.now();LocalDateTime localDateTime = localDate.atStartOfDay();Instant toInstant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();Date dateFromLocalDate = Date.from(toInstant);System.out.println(dateFromLocalDate);

輸出結(jié)果:

Thu Jun 11 00:00:00 CST 2020

6.8 LocalTime轉(zhuǎn)Date

LocalDate localDate = LocalDate.now();LocalTime localTime = LocalTime.now();LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);Instant instantFromLocalTime = localDateTime.atZone(ZoneId.systemDefault()).toInstant();Date dateFromLocalTime = Date.from(instantFromLocalTime);System.out.println(dateFromLocalTime);

輸出結(jié)果:

Thu Jun 11 15:24:18 CST 2020

7. 總結(jié)

JDK8推出了全新的日期時(shí)間類,如 Instant 、 LocaleDate 、 LocalTime 、 LocalDateTime 、 DateTimeFormatter ,設(shè)計(jì)比之前更合理,也是線程安全的。

《阿里巴巴Java開發(fā)規(guī)范》中也推薦使用 Instant 代替 Date , LocalDateTime 代替 Calendar , DateTimeFormatter 代替 SimpleDateFormat 。

因此,如果條件允許,建議在項(xiàng)目中使用,沒有使用的,可以考慮升級(jí)下。

到此這篇關(guān)于JDK8中日期類型該如何使用詳解的文章就介紹到這了,更多相關(guān)JDK8 日期類型內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JDK8
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩精品在线一区| 亚洲女同中文字幕| 中文字幕日韩欧美精品高清在线| 欧美日韩国产免费观看视频| 亚洲高清二区| 波多视频一区| 偷拍精品精品一区二区三区| 亚洲综合在线电影| 亚洲电影有码| 亚州av乱码久久精品蜜桃| 999国产精品999久久久久久| 91精品蜜臀一区二区三区在线| 欧美1区免费| 亚洲欧美不卡| 日韩欧美美女在线观看| 国产视频一区二| 久久久国产精品网站| sm久久捆绑调教精品一区| 秋霞国产精品| 影院欧美亚洲| 亚洲精品免费观看| 欧美日韩亚洲三区| 国产精品国码视频| 国产成人久久精品麻豆二区| 亚洲爱爱视频| 午夜一级久久| 欧美久久一区二区三区| 国产精品久久久久77777丨| 国产一区二区三区不卡av | 日本午夜精品久久久久| 国产精品黄网站| 电影天堂国产精品| 99在线观看免费视频精品观看| 亚洲综合国产| 国产欧美日韩免费观看| 亚洲女同av| 午夜一级在线看亚洲| 国产三级一区| 亚洲二区精品| 国产乱码精品一区二区三区亚洲人| 91视频一区| 久久午夜精品一区二区| 国产精品多人| 国内激情久久| 国产精品夜夜夜| 久久国产亚洲| 7m精品国产导航在线| 精品72久久久久中文字幕| 欧美影院三区| 久久精品av麻豆的观看方式| 精品国产成人| 国产一级久久| 嫩草伊人久久精品少妇av杨幂| 欧美粗暴jizz性欧美20| 久久激情av| 欧美 日韩 国产一区二区在线视频| 日韩在线网址| 欧美日韩免费观看视频| 欧美日韩 国产精品| 国户精品久久久久久久久久久不卡| 久久激五月天综合精品| 婷婷综合激情| 久久久久伊人| 国产精品日本欧美一区二区三区| 麻豆国产精品一区二区三区 | 亚洲午夜91| 国产探花在线精品一区二区| 欧美精品一区二区久久| 欧美aa在线视频| 免费精品视频在线| 国产伦久视频在线观看| 亚洲精品伊人| 亚洲午夜电影| 精品深夜福利视频| 涩涩涩久久久成人精品| 国产精品婷婷| 精品精品国产三级a∨在线| 亚洲一区区二区| 都市激情国产精品| 欧美日韩一区二区三区不卡视频 | 在线成人动漫av| 精品黄色一级片| 亚洲精品麻豆| 久久久久91| 精品高清久久| 国产三级一区| 日本一不卡视频| 欧美日韩国产免费观看| 成人在线免费观看91| 91亚洲精品视频在线观看| 久久久久国产精品一区三寸| 麻豆91精品91久久久的内涵| 日韩av影院| 一区二区三区午夜视频| 国模 一区 二区 三区| 亚洲综合电影| 国产成人a视频高清在线观看| 国产伦理一区| 91精品国产一区二区在线观看 | 精品午夜av| 国产情侣久久| 日韩精品一区二区三区免费视频 | 蜜桃视频一区二区三区在线观看| 欧美高清一区| 久久精品高清| 日本久久成人网| 亚洲天堂资源| 成人在线免费观看91| 久久精品国产网站| 久久精品国产免费| 国产精品白丝一区二区三区| 日韩高清一区二区| 偷拍亚洲精品| 日韩精品一区二区三区中文在线| 亚洲18在线| 亚洲精品乱码| 日韩精品一二三四| 丝袜美腿亚洲色图| 国产毛片一区| 日韩中文字幕一区二区三区| 丝袜美腿一区二区三区| 一区二区精彩视频| 日韩在线网址| 国产丝袜一区| 精品三级在线| 国产精品原创| 久久美女性网| 午夜影院欧美| 日韩一区精品字幕| 综合一区在线| 日韩精品免费视频人成| 天堂va欧美ⅴa亚洲va一国产| 日本综合精品一区| 国产亚洲人成a在线v网站| 国产精品亚洲二区| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产美女精品视频免费播放软件| 国产精品15p| 91欧美日韩| av亚洲在线观看| 亚洲一区二区小说| 欧美日一区二区在线观看| 九九久久国产| 日韩欧美自拍| 亚洲精品网址| 日本成人一区二区| 国产麻豆一区| аⅴ资源天堂资源库在线| 欧美成a人免费观看久久| 亚洲激情不卡| 日韩精选在线| 国产成人精品一区二区三区在线| 中文字幕系列一区| 男女激情视频一区| 久久精品72免费观看| 成人av三级| 午夜亚洲福利在线老司机| 国产丝袜一区| 色天使综合视频| 麻豆成人在线| 国产精品一区二区免费福利视频| 精品黄色一级片| 国产字幕视频一区二区| 亚洲精品自拍| 精品成人18| 欧美专区18| 久久av网站| 亚洲性视频h| 啪啪亚洲精品| 欧美精品高清| 亚洲综合福利| 都市激情国产精品| 日韩精品一级二级| 加勒比视频一区| 西西人体一区二区| 另类小说一区二区三区| 国产在线欧美| 国产伦精品一区二区三区视频| 日韩欧美午夜| 日韩av网站在线观看| 日本蜜桃在线观看视频| 首页欧美精品中文字幕| 精品国产黄a∨片高清在线| 国产农村妇女精品一二区| 欧美专区一区| 91九色精品| 高清一区二区三区av| 免费视频一区二区| 国产拍在线视频| 日韩精品免费观看视频| 久久狠狠婷婷| 欧美另类中文字幕| 亚洲精品网址| 狠狠久久伊人| 日韩一区网站| 特黄特色欧美大片| 国产精品久久久一区二区| 国产偷自视频区视频一区二区| 国产91在线精品| 欧美在线精品一区|