激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Java8 新特性之日期API

詳解Java8 新特性之日期API

2020-12-05 16:43April.Chen Java教程

Java 8 在包java.time下包含了一組全新的時間日期API。下面通過示例給大家講解java8 新特征日期api的相關知識,感興趣的朋友一起看看吧

Java 8 在包java.time下包含了一組全新的時間日期API。下面的例子展示了這組新API里最重要的一些部分:

1.Clock 時鐘

Clock類提供了訪問當前日期和時間的方法,Clock是時區敏感的,可以用來取代 System.currentTimeMillis() 來獲取當前的微秒數。某一個特定的時間點也可以使用Instant類來表示,Instant類也可以用來創建老的java.util.Date對象。

?
1
2
3
4
Clock clock = Clock.systemDefaultZone();
long millis = clock.millis();
Instant instant = clock.instant();
Date legacyDate = Date.from(instant);  // legacy java.util.Date

2.Timezones 時區

在新API中時區使用ZoneId來表示。時區可以很方便的使用靜態方法of來獲取到。 時區定義了到UTS時間的時間差,在Instant時間點對象到本地日期對象之間轉換的時候是極其重要的。

?
1
2
3
4
5
6
7
8
System.out.println(ZoneId.getAvailableZoneIds());
// prints all available timezone ids
ZoneId zone1 = ZoneId.of("Europe/Berlin");
ZoneId zone2 = ZoneId.of("Brazil/East");
System.out.println(zone1.getRules());
System.out.println(zone2.getRules());
// ZoneRules[currentStandardOffset=+01:00]
// ZoneRules[currentStandardOffset=-03:00]

3.LocalTime 本地時間

LocalTime 定義了一個沒有時區信息的時間,例如 晚上10點,或者 17:30:15。下面的例子使用前面代碼創建的時區創建了兩個本地時間。之后比較時間并以小時和分鐘為單位計算兩個時間的時間差:

?
1
2
3
4
5
6
7
LocalTime now1 = LocalTime.now(zone1);
LocalTime now2 = LocalTime.now(zone2);
System.out.println(now1.isBefore(now2)); // false
long hoursBetween = ChronoUnit.HOURS.between(now1, now2);
long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);
System.out.println(hoursBetween);    // -3
System.out.println(minutesBetween);   // -239

LocalTime 提供了多種工廠方法來簡化對象的創建,包括解析時間字符串。

?
1
2
3
4
5
6
7
8
LocalTime localTime= LocalTime.of(23, 59, 59);
System.out.println(localTime);    // 23:59:59
DateTimeFormatter germanFormatter =
  DateTimeFormatter
    .ofLocalizedTime(FormatStyle.SHORT)
    .withLocale(Locale.GERMAN);
LocalTime leetTime = localTime.format(germanFormatter);
System.out.println(leetTime);

4.LocalDate 本地日期

LocalDate 表示了一個確切的日期,比如 2014-03-11。該對象值是不可變的,用起來和LocalTime基本一致。下面的例子展示了如何給Date對象加減天/月/年。另外要注意的是這些對象是不可變的,操作返回的總是一個新實例。

?
1
2
3
4
5
6
LocalDate today = LocalDate.now();
LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);
LocalDate yesterday = tomorrow.minusDays(2);
LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);
DayOfWeek dayOfWeek = independenceDay.getDayOfWeek();
System.out.println(dayOfWeek);  // FRIDAY

從字符串解析一個LocalDate類型和解析LocalTime一樣簡單:

?
1
2
3
4
5
6
DateTimeFormatter germanFormatter =
  DateTimeFormatter
    .ofLocalizedDate(FormatStyle.MEDIUM)
    .withLocale(Locale.GERMAN);
LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter);
System.out.println(xmas);  // 2014-12-24

5.LocalDateTime 本地日期時間

LocalDateTime 同時表示了時間和日期,相當于前兩節內容合并到一個對象上了。LocalDateTime和LocalTime還有LocalDate一樣,都是不可變的。LocalDateTime提供了一些能訪問具體字段的方法。

?
1
2
3
4
5
6
7
LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59);
DayOfWeek dayOfWeek = sylvester.getDayOfWeek();
System.out.println(dayOfWeek);   // WEDNESDAY
Month month = sylvester.getMonth();
System.out.println(month);     // DECEMBER
long minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY);
System.out.println(minuteOfDay);  // 1439

只要附加上時區信息,就可以將其轉換為一個時間點Instant對象,Instant時間點對象可以很容易的轉換為老式的java.util.Date。

?
1
2
3
4
5
Instant instant = sylvester
    .atZone(ZoneId.systemDefault())
    .toInstant();
Date legacyDate = Date.from(instant);
System.out.println(legacyDate);   // Wed Dec 31 23:59:59 CET 2014

格式化LocalDateTime和格式化時間和日期一樣的,除了使用預定義好的格式外,我們也可以自己定義格式:

?
1
2
3
4
5
6
DateTimeFormatter formatter =
  DateTimeFormatter
    .ofPattern("MMM dd, yyyy - HH:mm");
LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter);
String string = formatter.format(parsed);
System.out.println(string);   // Nov 03, 2014 - 07:13

和java.text.NumberFormat不一樣的是新版的DateTimeFormatter是不可變的,所以它是線程安全的。

以上所述是小編給大家介紹的Java8 新特性之日期API,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/april-chen/archive/2017/07/21/7218217.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人在线视频网 | 中国hdxxxx护士爽在线观看 | 中文字幕网在线 | 成人精品视频网站 | 精品国产精品久久 | 久久国产精品电影 | 狠狠操视频网站 | 亚洲码无人客一区二区三区 | 亚洲视频欧美 | 久久6国产 | a一级黄 | h视频免费观看 | 精品国产99久久久久久宅男i | av电影免费观看 | 美女视频网站黄色 | 91福利国产在线观一区二区 | 国产精品成人一区二区三区电影毛片 | 九九热精品视频在线 | 九九精品在线播放 | 91九色精品 | 欧美视屏一区二区 | 黄色大片网站在线观看 | 日本一区二区免费在线观看 | 久久免费视频一区 | 羞羞的视频免费在线观看 | 精品一区二区三区免费毛片爱 | 国产伊人色 | 国产毛片网 | 最新se94se在线欧美 | 日本一区二区不卡高清 | 日韩黄在线观看 | 国产精品久久亚洲 | 性猛交ⅹxxx乱巴西 在线播放中文 | 欧美3p激情一区二区三区猛视频 | 被摁着灌浓精囚禁高h1v1 | 国产1区2区3区中文字幕 | 久久久国产电影 | 亚洲av毛片久久久久 | 国产一区二区三区在线免费 | 欧美精品色精品一区二区三区 | 精品成人免费一区二区三区 |