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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java8 - 新的时间日期API示例

發布時間:2025/7/25 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java8 - 新的时间日期API示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  Java 8之前的庫對時間和日期的支持非常不理想,不用擔心,在Java 8中引入全新的時間和日期API,并且都是線程安全的

  • 新時間日期API常用對象介紹

    LocalDate: 表示沒有時區的日期, LocalDate是不可變且線程安全

    LocalTime: 表示沒有時區的時間, LocalTime是不可變且線程安全

    LocalDateTime: 表示沒有時區的日期時間, LocalDateTime是不可變且線程安全

    ZoneId: 時區ID,用來確定Instant和LocalDateTime互相轉換的規則

    Instant: 用來表示時間線上的一個點(瞬時/時間戳)

    Clock: 用于訪問當前時刻、日期、時間,用到時區

    Duration: 用秒和納秒表示時間的數量(長短),用于計算兩個日期的“時間”間隔

    Period: 用于計算兩個“日期”間隔

    其中,LocalDate、LocalTime、LocalDateTime是新API里的基礎對象:

      LocalDate : 只含年月日的日期對象

      LocalTime :只含時分秒的時間對象

      LocalDateTime : 同時含有年月日時分秒的日期對象

?

  • 新時間日期API示例

     (1)獲取當前時間:

        - now() : 靜態方法,根據當前時間創建對象

LocalDate localDate = LocalDate.now();LocalTime localTime = LocalTime.now();LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDate);System.out.println(localTime);System.out.println(localDateTime);/*輸出:2019-02-2319:23:10.8650213002019-02-23T19:23:10.866021400*/

     ? (2)獲取當前年、月、日

LocalDate today = LocalDate.now();int year = today.getYear();int month = today.getMonthValue();int day = today.getDayOfMonth();System.out.println("年:"+year+"\n月:"+month+"\n日:"+day);/*輸出:年:2019月:2日:23*/

     (3)根據指定日期時間創建對象

         - of() : 靜態方法 ?并返回一個LocalDate實例

LocalDate localDate = LocalDate.of(2019, 2, 23);LocalTime localTime = LocalTime.of(9, 43, 20);LocalDateTime localDateTime = LocalDateTime.of(2019, 2, 23, 9, 43, 20);System.out.println(localDate);System.out.println(localTime);System.out.println(localDateTime);/*輸出:2019-02-239:43:202019-02-23T9:43:20*/

     (4)檢查兩個日期是否相等

        ?LocalDate重寫了equals方法來進行日期的比較

LocalDate today = LocalDate.now();LocalDate day = LocalDate.of(2019, 2, 14);System.out.println("今天的日期是2019-02-14么?"+today.equals(day));// 今天的日期是2019-02-14么?false

     (5)判斷是否閏年

LocalDate now = LocalDate.now();System.out.println( now + "是否是閏年" + now.isLeapYear());// 2019-02-23 是否是閏年 false

     (6)獲取當前時間戳

        Instant類由一個靜態的工廠方法now()可以返回當前時間戳

  Instant instant = Instant.now();System.out.println(instant);// 2019-02-23T12:19:53.455638400Z

        可以使用這個兩個類中的方法在這兩個類型之間進行轉換

          -?Date.from(Instant)就是用來把Instant轉換成java.util.date

          -?Date.toInstant()就是將Date轉換成Instant

        以上獲取到的是 UTC 時區的時間,與中國時間相差8小時,可以設置偏移量

  Instant instant = Instant.now();System.out.println(instant.atOffset(ZoneOffset.ofHours(8)));// 中國當前時間:2019-02-23T20:37:26.980896600+08:00

     (7)兩個日期之間相差多少時間  LocalDate today = LocalDate.now();

  LocalDate day = LocalDate.of(2018, 2, 14);Period period = Period.between(day, today);System.out.println(period.getYears()+"-"+period.getMonths()+"-"+period.getDays());// 兩者 相差 1年-0月-9天

  // 以下用來判斷時間的差

   LocalTime startTime = LocalTime.now();
   LocalTime endTime = LocalTime.now();
   System.out.println(Duration.between(startTime, endTime).toSeconds()); 

?

   LocalDate startDate = LocalDate.of(1993, Month.OCTOBER, 19);
   LocalDate endDate = LocalDate.of(2017, Month.JUNE, 16);
   long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);
   System.out.println("兩天之間的差在天數 : " + daysDiff);

     (8)獲取這個年中月有多少天

        用于檢查2月是否潤2

  YearMonth yMonth = YearMonth.now();System.out.println("這個"+yMonth+"年月有"+yMonth.lengthOfMonth()+"天");// 這個2019-02年月有28天

      (9)使用時鐘

        獲取某個時區下當前的瞬時時間、日期,代替System.currentTimelnMillis()與TimeZone.getDefault()方法

  Clock clock = Clock.systemUTC();System.out.println(clock);// SystemClock[Z] Clock.systemDefaultZone();System.out.println(clock);// SystemClock[Z]

      (10)判斷某個日期在另一個日期的之前/之后

  LocalDate today = LocalDate.now();LocalDate tommorow = today.plus(1,ChronoUnit.DAYS);System.out.println("明天的日期:"+tommorow);System.out.println("日期:"+tommorow+"是否在日期:"+today+"之后:"+tommorow.isAfter(today));System.out.println("日期:"+tommorow+"是否在日期:"+today+"之后:"+tommorow.isBefore(today));//今天的日期:2019-02-23//明天的日期:2019-02-24//日期:2019-02-24是否在日期:2019-02-23之后:true//日期:2019-02-24是否在日期:2019-02-23之后:false

     (11)時間/日期的修改

  LocalDate nowDate = LocalDate.now();System.out.println(nowDate.minusYears(1));//一年前System.out.println(nowDate.minusMonths(1));//一月前System.out.println(nowDate.minusWeeks(1));//一周前System.out.println(nowDate.minusDays(1));//一天前 System.out.println(nowDate.plusYears(1));//一年后System.out.println(nowDate.plusMonths(1));//一月后System.out.println(nowDate.plusWeeks(1));//一周后System.out.println(nowDate.plusDays(1));//一天后   LocalTime nowTime = LocalTime.now();System.out.println(nowTime.minusHours(1));//一小時前System.out.println(nowTime.minusMinutes(1));//一分鐘前System.out.println(nowTime.minusSeconds(1));//一秒前System.out.println(nowTime.minusNanos(1));//一納秒前 System.out.println(nowTime.plusHours(1));//一小時后System.out.println(nowTime.plusMinutes(1));//一分鐘后System.out.println(nowTime.plusSeconds(1));//一秒后System.out.println(nowTime.plusNanos(1));//一納秒后

     (12)時間日期格式化

  LocalDateTime ldt = LocalDateTime.now();System.out.println(ldt);//2018-09-06T18:22:47.366DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String ldtStr = ldt.format(dtf);System.out.println(ldtStr);//2018-09-06 18:22:47String ldtStr1 = dtf.format(ldt);System.out.println(ldtStr1);//2018-09-06 18:22:47

        預定義的格式器來對日期進行解析/格式化:

  String temp = "20190214";LocalDate formatted = LocalDate.parse(temp,DateTimeFormatter.BASIC_ISO_DATE);System.out.println("格式化后的格式是:"+formatted);// 格式化后的格式是:2019-02-14

        自定義解析為日期:

  String str = "01 12 2014";DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM dd yyyy");LocalDate lDate = LocalDate.parse(str,formatter);System.out.println("格式化后的格式是:"+lDate);// 格式化后的格式是:2014-01-12

        日期進行格式化,轉換成字符串:

  LocalDateTime lDateTime = LocalDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM dd yyyy HH:mm a");String str = localDateTime.format(formatter);System.out.println("格式化后的格式是:"+str);// 2019-02-23T9:45:20 格式化后的格式是:02 23 2019 22:37 下午

      OffsetDateTime類實際上包含了LocalDateTime與ZoneOffset。它用來表示一個包含格林威治時間偏移量(+/-小時:分,比如+06:00或者 -08:00)的完整的日期(年月日)及時間(時分秒,納秒)

      “MMM d yyyy”與“MMm dd yyyy”這兩個日期格式也略有不同,前者能識別出"Jan 2 2019"與"Jan 14 2019"這兩個串,而后者如果傳進來的是"Jan 2 2014"則會報錯,因為它期望月份處傳進來的是兩個字符。為了解決這個問題,在天為個位數的情況下,你得在前面補0,比如"Jan 2 2019"應該改為"Jan 02 2019"

      DateTimeFormatter類用于在Java中進行日期的格式化與解析。與SimpleDateFormat不同,它是不可變且線程安全的

      時區指的是地球上共享同一標準時間的地區。每個時區都有一個唯一標識符,同時還有一個地區/城市(Asia/Tokyo)的格式以及從格林威治時間開始的一個偏移時間。比如說,東京的偏移時間就是+09:00

?

轉載于:https://www.cnblogs.com/stamp/p/java_base_newDate.html

總結

以上是生活随笔為你收集整理的java8 - 新的时间日期API示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜精品一区二区三区三上悠亚 | 久久网一区 | 国产一区二区视频免费 | www欧美com| 免费的黄色网址 | 国产毛片99 | 精品国产一区二区不卡 | 伊人精品在线观看 | 久久久久久久久久久久久女国产乱 | 欧美视频自拍偷拍 | 日韩精品在线看 | 超碰人人爱 | 久久国产人妻一区二区免色戒电影 | 国产性―交―乱―色―情人 | 亚洲av成人无码一区二区三区在线观看 | 欧美综合一区二区三区 | 日韩精品免费一区二区三区 | 中文字幕自拍偷拍 | 制服丝袜天堂网 | 91久色蝌蚪 | 波多野结衣视频一区 | 日本人极品人妖高潮 | 亚洲一级片在线播放 | 色女人综合| 在线中文字幕网站 | 日本在线一区二区三区 | 97伦伦午夜电影理伦片 | 日韩成人高清在线 | 高h放荡受浪受bl | 中国一级片在线观看 | 里番acg★同人里番本子大全 | 国产夫妻精品 | 亚洲第一黄色片 | 成人免费毛片免费 | 天天躁狠狠躁狠狠躁夜夜躁68 | 日本特级毛片 | 密臀av | 国产真人做爰毛片视频直播 | 国产黄色免费看 | 午夜亚洲精品 | 亚洲精品av在线 | av基地| 麻豆精品国产精华精华液好用吗 | 国产福利免费在线观看 | 国产一二区在线 | 人妻少妇精品一区二区 | 日韩亚洲视频 | 国产又粗又长又硬免费视频 | 日本精品视频一区二区 | 国产福利不卡视频 | 女人久久久 | 久久伊人一区二区 | 99资源 | 亚洲女优在线播放 | 国产精品v亚洲精品v日韩精品 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 欧美美女爱爱视频 | www.黄色| 性爽爽| 边打电话边做 | 欧美一区二区三区视频在线观看 | 男女www | 国产99在线播放 | 黄色成人毛片 | 一级在线免费视频 | 天天色天天爽 | 强开乳罩摸双乳吃奶羞羞www | 亚洲无码精品免费 | 欧美亚洲免费 | 成人在线手机视频 | 久久久久久av无码免费网站下载 | 国产日韩欧美二区 | 久久99国产精品一区 | 香蕉福利 | 校园春色中文字幕 | 国产精品一区二区三区在线看 | 国产视频福利在线观看 | 亚洲午夜一区二区 | 国产精品扒开腿做爽爽爽男男 | 亚洲色图偷 | 国产中文在线视频 | 日韩欧美www | 热热色国产 | 美女黄色在线观看 | 99热99精品 | 日本青青草视频 | 久久在线一区二区 | 一道本在线观看视频 | 中文一区二区在线 | 91桃色在线观看 | 国产丰满农村老妇女乱 | 在线午夜 | 国语毛片 | 婷婷91| 最新中文字幕2019 | 久久福利片 | 成人精品一区二区三区电影黑人 | 天天操天天插天天射 | 国产高清自拍av |