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

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

Java 8新時間日期庫java.time的使用示例

瀏覽:20日期:2022-08-28 17:29:31
Instant——它代表的是時間戳 LocalDate——不包含具體時間的日期,比如 2020-01-14。它可以用來存儲生日,周年紀(jì)念日,入職日期等。 LocalTime——它代表的是不含日期的時間 LocalDateTime——它包含了日期及時間,不過還是沒有偏移信息或者說時區(qū)。 ZonedDateTime——這是一個包含時區(qū)的完整的日期時間,偏移量是以 UTC / 格林威治時間為基準(zhǔn)的。

Java 8 是如何處理時間及日期的

示例 1 如何 在 Java 8 中獲取當(dāng)天的日期

LocalDate today = LocalDate.now(); System.out.println('Today’s Local date : ' + today); Output Today’s Local date : 2020-01-14

示例 2 如何在 Java 8 中獲取當(dāng)前的年月日

LocalDate today = LocalDate.now(); int year = today.getYear(); int month = today.getMonthValue(); int day = today.getDayOfMonth(); System.out.printf('Year : %d Month : %d day : %d t %n', year, month, day); Output Today’s Local date : 2020-01-14 Year : 2020 Month : 1 day : 14

示例 3 在 Java 8 中如何獲取某個特定的日期

LocalDate dateOfBirth = LocalDate.of(2010, 01, 14); System.out.println('Your Date of birth is : ' + dateOfBirth); Output : Your Date of birth is : 2010-01-14

示例 4 在 Java 8 中如何檢查兩個日期是否相等

LocalDate date1 = LocalDate.of(2020, 01, 14); if(date1.equals(today)){ System.out.printf('Today %s and date1 %s are same date %n', today, date1); } Output today 2020-01-14 and date1 2020-01-14 are same date

示例 5 在 Java 8 中如何檢查重復(fù)事件,比如說生日

LocalDate dateOfBirth = LocalDate.of(2010, 01, 14); MonthDay birthday = MonthDay.of(dateOfBirth.getMonth(), dateOfBirth.getDayOfMonth()); MonthDay currentMonthDay = MonthDay.from(today); if(currentMonthDay.equals(birthday)){ System.out.println('Many Many happy returns of the day !!'); }else{ System.out.println('Sorry, today is not your birthday'); } Output: Many Many happy returns of the day !!

示例 6 如何在 Java 8 中獲取當(dāng)前時間

LocalTime time = LocalTime.now(); System.out.println('local time now : ' + time);Output local time now : 16:33:33.369 // in hour, minutes, seconds, nano seconds

示例 7 如何增加時間里面的小時數(shù)

LocalTime time = LocalTime.now(); LocalTime newTime = time.plusHours(2); // adding two hours System.out.println('Time after 2 hours : ' + newTime); Output : Time after 2 hours : 18:33:33.369

示例 8 如何獲取 1 周后的日期

LocalDate nextWeek = today.plus(1, ChronoUnit.WEEKS); System.out.println('Today is : ' + today); System.out.println('Date after 1 week : ' + nextWeek); Output: Today is : 2020-01-14 Date after 1 week : 2020-01-21

示例 9 一年前后的日期

LocalDate previousYear = today.minus(1, ChronoUnit.YEARS); System.out.println('Date before 1 year : ' + previousYear); LocalDate nextYear = today.plus(1, YEARS); System.out.println('Date after 1 year : ' + nextYear);Output: Date before 1 year : 2019-01-14 Date after 1 year : 2021-01-14

示例 10 在 Java 8 中使用時鐘

// Returns the current time based on your system clock and set to UTC. Clock clock = Clock.systemUTC(); System.out.println('Clock : ' + clock);// Returns time based on system clock zone Clock defaultClock = Clock.systemDefaultZone(); System.out.println('Clock : ' + clock);Output: Clock : SystemClock[Z] Clock : SystemClock[Z]public class MyClass { private Clock clock; // dependency inject ... public void process(LocalDate eventDate) { if(eventDate.isBefore(LocalDate.now(clock)) { ... } } }

示例 11 在 Java 中如何判斷某個日期是在另一個日期的前面還是后面

LocalDate tomorrow = LocalDate.of(2020, 1, 15);if(tommorow.isAfter(today)){ System.out.println('Tomorrow comes after today'); } LocalDate yesterday = today.minus(1, DAYS); if(yesterday.isBefore(today)){ System.out.println('Yesterday is day before today'); }Output: Tomorrow comes after today Yesterday is day before today

示例 12 在 Java 8 中處理不同的時區(qū)

// Date and time with timezone in Java 8 ZoneId america = ZoneId.of('America/New_York'); LocalDateTime localtDateAndTime = LocalDateTime.now(); ZonedDateTime dateAndTimeInNewYork = ZonedDateTime.of(localtDateAndTime, america ); System.out.println('Current date and time in a particular timezone : ' + dateAndTimeInNewYork);Output : Current date and time in a particular timezone : 2020-01-14T16:33:33.373-05:00[America/New_York]Exception in thread 'main' java.time.zone.ZoneRulesException: Unknown time-zone ID: ASIA/Tokyo at java.time.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:272) at java.time.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:227) at java.time.ZoneRegion.ofId(ZoneRegion.java:120) at java.time.ZoneId.of(ZoneId.java:403) at java.time.ZoneId.of(ZoneId.java:351)

示例 13 如何表示固定的日期,比如信用卡過期時間

YearMonth currentYearMonth = YearMonth.now(); System.out.printf('Days in month year %s: %d%n', currentYearMonth, currentYearMonth.lengthOfMonth()); YearMonth creditCardExpiry = YearMonth.of(2018, Month.FEBRUARY); System.out.printf('Your credit card expires on %s %n', creditCardExpiry);Output: Days in month year 2020-01: 31 Your credit card expires on 2018-02

示例 14 如何在 Java 8 中檢查閏年

if(today.isLeapYear()){ System.out.println('This year is Leap year'); }else { System.out.println('2020 is not a Leap year'); }Output: 2020 is not a Leap year

示例 15 兩個日期之間包含多少天,多少個月

LocalDate java8Release = LocalDate.of(2020, Month.MARCH, 14); Period periodToNextJavaRelease = Period.between(today, java8Release); System.out.println('Months left between today and Java 8 release : ' + periodToNextJavaRelease.getMonths() );Output: Months left between today and Java 8 release : 2

示例 16 帶時區(qū)偏移量的日期與時間

LocalDateTime datetime = LocalDateTime.of(2020, Month.JANUARY, 14, 19, 30); ZoneOffset offset = ZoneOffset.of('+05:30'); OffsetDateTime date = OffsetDateTime.of(datetime, offset); System.out.println('Date and Time with timezone offset in Java : ' + date);Output : Date and Time with timezone offset in Java : 2020-01-14T19:30+05:30

示例 17 在 Java 8 中如何獲取當(dāng)前時間戳

Instant timestamp = Instant.now(); System.out.println('What is value of this instant ' + timestamp);Output : What is value of this instant 2020-01-14T08:33:33.379Z

示例 18 如何在 Java 8 中使用預(yù)定義的格式器來對日期進行解析 / 格式化

String dayAfterTommorrow = '20200116'; LocalDate formatted = LocalDate.parse(dayAfterTommorrow, DateTimeFormatter.BASIC_ISO_DATE); System.out.printf('Date generated from String %s is %s %n', dayAfterTommorrow, formatted);Output : Date generated from String 20200116 is 2020-01-16

示例 19 如何在 Java 中使用自定義的格式器來解析日期

String goodFriday = 'Apr 18 2020'; try { DateTimeFormatter formatter = DateTimeFormatter.ofPattern('MMM dd yyyy'); LocalDate holiday = LocalDate.parse(goodFriday, formatter); System.out.printf('Successfully parsed String %s, date is %s%n', goodFriday, holiday); } catch (DateTimeParseException ex) { System.out.printf('%s is not parsable!%n', goodFriday); ex.printStackTrace(); }Output : Successfully parsed String Apr 18 2020, date is 2020-04-18

示例 20 如何在 Java 8 中對日期進行格式化,轉(zhuǎn)換成字符串

LocalDateTime arrivalDate = LocalDateTime.now(); try { DateTimeFormatter format = DateTimeFormatter.ofPattern('MMM dd yyyy hh:mm a'); String landing = arrivalDate.format(format); System.out.printf('Arriving at : %s %n', landing); } catch (DateTimeException ex) { System.out.printf('%s can’t be formatted!%n', arrivalDate); ex.printStackTrace(); }Output : Arriving at : Jan 14 2020 04:33 PM

示例 21獲取時間戳秒和毫秒

Instant ins= Instant.now();System.out.println('10位 秒'+ins.getEpochSecond());System.out.println('13位 毫秒'+ins.toEpochMilli());

Java 8 中日期與時間 API 的幾個關(guān)鍵點

它提供了 javax.time.ZoneId 用來處理時區(qū)。 它提供了 LocalDate 與 LocalTime 類 Java 8 中新的時間與日期 API 中的所有類都是不可變且線程安全的,這與之前的 Date 與 Calendar API 中的恰好相反,那里面像 java.util.Date 以及 SimpleDateFormat 這些關(guān)鍵的類都不是線程安全的。 新的時間與日期 API 中很重要的一點是它定義清楚了基本的時間與日期的概念,比方說,瞬時時間,持續(xù)時間,日期,時間,時區(qū)以及時間段。它們都是基于 ISO 日歷體系的。 每個 Java 開發(fā)人員都應(yīng)該至少了解這套新的 API 中的這五個類: Instant 它代表的是時間戳,比如 2020-01-14T02:20:13.592Z,這可以從 java.time.Clock 類中獲取,像這樣: Instant current = Clock.system(ZoneId.of(“Asia/Tokyo”)).instant(); LocalDate 它表示的是不帶時間的日期,比如 2020-01-14。它可以用來存儲生日,周年紀(jì)念日,入職日期等。 LocalTime ? 它表示的是不帶日期的時間 LocalDateTime ? 它包含了時間與日期,不過沒有帶時區(qū)的偏移量 ZonedDateTime ? 這是一個帶時區(qū)的完整時間,它根據(jù) UTC / 格林威治時間來進行時區(qū)調(diào)整 這個庫的主包是 java.time,里面包含了代表日期,時間,瞬時以及持續(xù)時間的類。它有兩個子 package,一個是 java.time.foramt,這個是什么用途就很明顯了,還有一個是 java.time.temporal,它能從更低層面對各個字段進行訪問。 時區(qū)指的是地球上共享同一標(biāo)準(zhǔn)時間的地區(qū)。每個時區(qū)都有一個唯一標(biāo)識符,同時還有一個地區(qū) / 城市 (Asia/Tokyo) 的格式以及從格林威治時間開始的一個偏移時間。比如說,東京的偏移時間就是 + 09:00。 OffsetDateTime 類實際上包含了 LocalDateTime 與 ZoneOffset。它用來表示一個包含格林威治時間偏移量(+/- 小時:分,比如 + 06:00 或者 -08:00)的完整的日期(年月日)及時間(時分秒,納秒)。 DateTimeFormatter 類用于在 Java 中進行日期的格式化與解析。與 SimpleDateFormat 不同,它是不可變且線程安全的,如果需要的話,可以賦值給一個靜態(tài)變量。DateTimeFormatter 類提供了許多預(yù)定義的格式器,你也可以自定義自己想要的格式。當(dāng)然了,根據(jù)約定,它還有一個 parse() 方法是用于將字符串轉(zhuǎn)換成日期的,如果轉(zhuǎn)換期間出現(xiàn)任何錯誤,它會拋出 DateTimeParseException 異常。類似的,DateFormatter 類也有一個用于格式化日期的 format() 方法,它出錯的話則會拋出 DateTimeException 異常。 再說一句,“MMM d yyyy”與 “MMm dd yyyy” 這兩個日期格式也略有不同,前者能識別出”Jan 2 2020″與”Jan 14 2020″這兩個串,而后者如果傳進來的是”Jan 2 2020″則會報錯,因為它期望月份處傳進來的是兩個字符。為了解決這個問題,在天為個位數(shù)的情況下,你得在前面補 0,比如”Jan 2 2020″應(yīng)該改為”Jan 02 2020″。

總結(jié)

到此這篇關(guān)于Java 8新時間日期庫java.time使用的文章就介紹到這了,更多相關(guān)Java 8新時間日期庫java.time內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产无遮挡裸体免费久久| 综合国产精品| 成人免费一区| 日本vs亚洲vs韩国一区三区二区| 久久一区二区三区电影| 久久一区国产| 91福利精品在线观看| 免费久久精品视频| 亚洲经典在线| 999国产精品视频| 成人福利av| 国产成人精品一区二区免费看京 | 亚洲久久一区| 欧美三级精品| 深夜视频一区二区| 欧美激情五月| 国产精品xxx在线观看| 久久国产三级精品| 在线免费观看亚洲| 麻豆久久精品| 免费人成在线不卡| 香蕉视频成人在线观看| 午夜电影亚洲| 99riav国产精品| 亚洲婷婷在线| 1024精品久久久久久久久| 日韩免费视频| 日韩一区二区在线免费| 丁香六月综合| 99久久激情| 国产精品天天看天天狠| 91成人精品观看| 国产精品一区二区三区四区在线观看| 日本特黄久久久高潮| 国产精品主播| 九九九精品视频| 国产成人精品亚洲线观看| 精品欧美视频| 在线手机中文字幕| 捆绑调教日本一区二区三区| 国产精品黑丝在线播放| 日韩大片在线观看| 亚洲一级少妇| 欧美成人综合| 久久国产精品99国产| 欧美日韩精品在线一区| 欧美国产91| 日韩中文字幕一区二区三区| 免费在线观看一区二区三区| 免播放器亚洲一区| 日韩精品一区二区三区中文| 国产毛片精品| 成人污污视频| 亚洲福利久久| 免费看欧美美女黄的网站| 在线亚洲一区| 99视频+国产日韩欧美| 亚洲一区国产| 男人的天堂亚洲一区| 日韩毛片一区| 欧美一级二级视频| 精品一级视频| 日韩中文视频| 丝袜脚交一区二区| 国产欧美大片| 精品视频网站| 久久人人99| 亚洲91网站| 国产精品对白| 亚洲国产专区| 青青草精品视频| 国产在线一区不卡| 亚洲精品123区| 国产精品一区二区av交换| 精品久久久网| 久久久777| 亚洲精品a级片| 91九色综合| 国产精品字幕| 久久精品av麻豆的观看方式| 电影亚洲精品噜噜在线观看| 午夜欧美视频| 国产精品午夜av| 欧洲毛片在线视频免费观看| 91九色综合| 日韩欧美少妇| 日本不卡的三区四区五区| 国产成人免费av一区二区午夜| 亚洲免费黄色| 日韩在线短视频| 国产欧美日韩在线一区二区| 日韩视频免费| 日韩免费福利视频| 国产精品大片| 欧美三区不卡| 亚洲精品国产精品粉嫩| 91高清一区| 国产v日韩v欧美v| 欧美黄色精品| 国产欧美一区| 国产欧美日韩| 国产欧美亚洲精品a| 日韩有吗在线观看| 丝袜脚交一区二区| 国产视频一区在线观看一区免费| 精品久久视频| 麻豆视频久久| 欧美激情视频一区二区三区免费| 日韩av不卡一区二区| 亚洲日本免费电影| 三级亚洲高清视频| 欧美专区一区二区三区| 不卡中文字幕| 激情欧美亚洲| 91精品二区| 黑丝一区二区| 亚洲综合另类| 久久都是精品| 免费观看在线综合| 中文字幕亚洲在线观看| 日韩精品一二三四| 亚洲视频电影在线| 蜜桃久久精品一区二区| 免费欧美在线视频| 日韩手机在线| 国产精品一区二区美女视频免费看| 欧美在线不卡| 国产另类在线| 欧美成a人片免费观看久久五月天| 国产精品成人3p一区二区三区| 国产精品综合色区在线观看| 国产精品夜夜夜| 麻豆精品av| 91亚洲成人| 日韩成人综合| 不卡一区2区| 国产视频一区在线观看一区免费| 爽好多水快深点欧美视频| 蜜桃视频一区二区三区在线观看| 爽好多水快深点欧美视频| 亚洲久久视频| 国产精品久久久网站| 精品久久视频| 99久久99久久精品国产片果冰| 亚洲激情av| 亚洲3区在线| 久久成人av| 久久久久免费| 美女网站一区| 亚洲精品亚洲人成在线观看| 欧美亚洲综合视频| 精品国产鲁一鲁****| 欧洲一级精品| 视频一区视频二区在线观看| 日韩福利视频导航| 精品九九在线| 欧美freesex黑人又粗又大| 久久理论电影| 伊人国产精品| 久久麻豆视频| 亚洲高清影视| 亚洲tv在线| 成人国产精品一区二区网站| 欧美不卡高清| 亚洲永久精品唐人导航网址| 国产精品伦一区二区| 国产精品蜜芽在线观看| 激情六月综合| 国产欧美日韩影院| 久久天堂av| 日韩在线观看中文字幕| 国产在线不卡一区二区三区| 尤物精品在线| 国产精品玖玖玖在线资源| 久久视频精品| 国产九一精品| 红桃视频欧美| 精品中文字幕一区二区三区四区| 欧美 日韩 国产精品免费观看| 亚洲精品亚洲人成在线观看| 国产精品精品| 亚洲欧美久久| 国产一区二区精品福利地址| 国产精品免费看| 精品国产午夜| 综合激情婷婷| av日韩中文| 香蕉久久久久久| 日本а中文在线天堂| 亚洲精品激情| 亚洲成人av观看| 欧美在线观看天堂一区二区三区| 欧美一级鲁丝片| 青青国产精品| 最新亚洲激情| 国产精品精品国产一区二区| 亚洲三级在线| 久久美女精品| 精品视频网站| 日韩黄色在线观看|