java通过LocalDateTime获取上周几
生活随笔
收集整理的這篇文章主要介紹了
java通过LocalDateTime获取上周几
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
看了一下csdn上的很多獲取上周的都是通過Calendar來做的,這里推薦一個(gè)新的類:LocalDateTime來做,單就個(gè)人感覺而言,相比較Calendar而言簡單了很多.這里以獲取上周日為例:先來說一下思路:首先獲取當(dāng)前時(shí)間,然后獲取今天是周幾,將當(dāng)前時(shí)間向前推一個(gè)星期,再加上(7-當(dāng)前周幾),即可獲取當(dāng)前周周日。代碼:
public class LocalDateTimeTest2{public static void main(String[] args) {// 當(dāng)前時(shí)間LocalDateTime localDateTime = LocalDateTime.now();// 獲取當(dāng)前周幾的int類型表示int dayOfWeek = localDateTime.getDayOfWeek().get(DAY_OF_WEEK);// 減去一周加上 (7 - 當(dāng)前周周幾)LocalDateTime localDateTime1 = localDateTime.minusWeeks(1).plusDays(7 - dayOfWeek);// 以yyyy-MM-dd輸出System.out.println(localDateTime1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));}
}
其中有幾個(gè)問題需要考慮:
第一個(gè)問題獲取的dayOfWeek是否需要減一,Calendar里的月份和周在我看來簡直就離譜,月份竟然從0開始,周末竟然是一周的第一天,只能說歪果仁真會玩.那么我們來看一下LocalDateTime獲取到的DayOfWeek中的get方法
如圖所示,所以get方法中應(yīng)該寫DAY_OF_WEEK,再來看一下DAY_OF_WEEK是什么:
終于不用加一了,為防萬一在測試一下:
剩下的就是LocalDateTime的一些常用api了,主要是minus代表減,plus代表加,get代表獲取,同時(shí)LocalDateTime還支持到納秒級別,總之我感覺是比Calendar香得多了,同時(shí)跟他同宗同源的還有LocalDate和LocalTime,分別負(fù)責(zé)處理日期和時(shí)間,相當(dāng)于對LocalDateTime的拆分,有興趣的可以去看一下,下面提供一下LocalDateTime的常用api,感謝大佬的提供:LocalDateTime API 整理
總結(jié)
以上是生活随笔為你收集整理的java通过LocalDateTime获取上周几的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TFRecord 统一数据格式
- 下一篇: 零基础学习python数据分析,需要掌握