日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

LocalDateTime - Java处理日期和时间

發(fā)布時(shí)間:2024/4/13 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LocalDateTime - Java处理日期和时间 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java.time包提供了新的日期和時(shí)間的API,新的API主要包括:1. LocalDate/LocalTime/LocalDateTime2. ZoneDateTime/ZoneId3. Instant4. Formatter我們看java.time提供的1. LocalDate: 本地的日期2. LocalTime: 本地的時(shí)間3. LocalDateTime: 本地的日+時(shí)間java.time提供的新的API主要是有這幾個(gè)特點(diǎn):1. 首先嚴(yán)格的區(qū)分日期和時(shí)間2. 其次所有的類稱為不變類,這一點(diǎn)和String非常的類似3. 新的API的Month是從1到12,對(duì)應(yīng)的是1月到12月,4. Week的范圍是從1到7,對(duì)應(yīng)的是周一到周日,這樣我們就不需要考慮加1和減1的問(wèn)題了我們可以通過(guò)LocalDate.now()獲取當(dāng)前的日期,通過(guò)LocalTime.now()獲取當(dāng)前的時(shí)間,通過(guò)LocalDateTime.now()獲取當(dāng)前的日期和時(shí)間,當(dāng)我們打印LocalDate和LocalTime,或者是LocalDateTime的時(shí)候,它是嚴(yán)格的按照ISO-8601的格式打印的我們還可以通過(guò)指定日期和時(shí)間,可以構(gòu)造LocalDate,LocalTime,LocalDateTime,方法通過(guò)調(diào)用of方法,傳入年月日,或者是時(shí)分秒,得到LocalDate和LocalTime,傳入年月日和時(shí)分秒,我們可以構(gòu)造出一個(gè)DateTime,或者利用一個(gè)LocalDate,和LocalTime對(duì)象,構(gòu)造出一個(gè)新的LocalDateTime 新的API同樣也提供了DateTimeFormatter對(duì)象,他和舊的SimpleDateFormat對(duì)象不一樣的是,它是一個(gè)不可變類,我們通過(guò)ofPattern這個(gè)方法,傳入指定的格式化的字符串,可以得到DateFormatter這個(gè)對(duì)象,我們同樣調(diào)用format和parse方法,對(duì)日期進(jìn)行格式化,或者從字符串解析出日期,默認(rèn)情況下,LocalDate,LocalTime,LocalDateTime,是按照ISO標(biāo)準(zhǔn)格式進(jìn)行解析的,因此,我們采用的是標(biāo)準(zhǔn)的格式化日期,或者是時(shí)間,我們就可以通過(guò)LocalDate,LocalTime,LocalDateTime,我們已經(jīng)列出了幾種標(biāo)準(zhǔn)的日期,時(shí)間,已經(jīng)日期和時(shí)間的字符串,新的API還有一個(gè)重大的更新,就是他增加了日期和時(shí)間的運(yùn)算,我們通過(guò)LocalDate的plusDays,傳入變量5,就可以在先有的基礎(chǔ)上加上5天,注意LocalDate是一個(gè)不變類,所以plusDays返回的是一個(gè)新的LocalDate對(duì)象,類似的我們用MinusHours減掉2個(gè)小時(shí),我們可以通過(guò)plusWeeks增加幾周我們還可以對(duì)日期和時(shí)間進(jìn)行調(diào)整,例如我們獲取到當(dāng)前的日期,然后我們調(diào)用withDayOfMonth,傳入1,就可以把日期調(diào)整到日期的第一天,我們用withSecond(0).withNano(0)可以把秒和納秒調(diào)整為0,我們還可以通過(guò)一個(gè)TemporalAdjusters.lastDaysMonth(),我們就可以計(jì)算出本月的最后一天,我們可以通過(guò)TemporalAdjusters.firstInMonth傳入DayOfWeek,例如SUNDAY,我們就計(jì)算出了本月的第一個(gè)周日新的API還提供了判斷日期的先后,我們通過(guò)兩個(gè)日期可以通過(guò)isBefore,或者isAfter,來(lái)判斷他們的先后順序,我們通過(guò)equals也可以判斷兩個(gè)日期是否相等我們還可以計(jì)算日期的Period,我們有一個(gè)utils方法可以得到一個(gè)Period對(duì)象,表示某一天到指定的另一天,他之間相差多少日期,例如我們計(jì)算2016年1月20號(hào)到2050年1月1號(hào),我們可以得到一個(gè)Period對(duì)象,我們打印這個(gè)對(duì)象,可以打印P33Y1M12D,表示這個(gè)日期相差33年,1個(gè)月12天我們通過(guò)Priod.getYears(),getMonths(),getDays(),可以分別取出對(duì)應(yīng)的整數(shù) 我們要注意,LocalDateTime是無(wú)法與Long進(jìn)行轉(zhuǎn)換的:1. 這是因?yàn)閺脑O(shè)計(jì)上LocalDateTime他是沒(méi)有時(shí)區(qū)的概念,因?yàn)長(zhǎng)ocalDateTime他是沒(méi)有時(shí)區(qū),我們也無(wú)法確定某一個(gè)時(shí)刻2. ZoneDateTime他是有時(shí)區(qū)的,所以他可以與Long交換最后我們總結(jié)一下LocalDate,LocalTime,LocalDateTime:1. 他們都是不變類2. 默認(rèn)按照ISO-8601標(biāo)準(zhǔn)格式化和解析3. 我們使用DateTimeFormatter自定義格式化和解析4. 我們可以通過(guò)plusDays和minusHours等方法對(duì)日期和時(shí)間進(jìn)行加減,返回新的對(duì)象5. 我們使用withDayOfMonth/with等方法調(diào)整日期和時(shí)間,返回新的對(duì)象6. 我們還可以使用isBefore/isAfter/equals判斷日期和時(shí)間的先后

?

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的LocalDateTime - Java处理日期和时间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。