• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • [Java基礎]時間處理相關類

    標簽: Java基礎  java

    在程序的執行過程中我們不可避免對時間的獲取,轉換操作,所以,了解常用的時間類還是很有必要的

    計算機內的時間:

    時間在計算機里是一維的,就如同一個直尺一般,而在計算機里,將1970年1月1日定為基準時間,每個度量單位是毫秒,一般用Long類型的變量來計量時間:Long now = System.currentTimeMillis();

    時間處理核心類Date:

    • 創建Date對象
      Date d = new Date();  //java.util.Date;Date類的無參構造實際上是調用有參構造Date(Long date)并將當前時間System.currentTimeMillis()作為有參構造Date(Long date)的參數。
      System.out.println(d); //所以實際上打印的是當前系統時間
      
      Date b = new Date(2000);   //在時間基準的基礎上往后推2000毫秒
      System.out.println(b);   //打印結果:Thu Jan 01 08:00:02 CST 1970;8小時的時間差是由于時區引起的。
      
    • 常用方法
      • 測試此時間是否在指定時間之后:after(Date when);
      • 得到當前時間距離時間基準的毫秒數:getTime();
      • 其他的方法大多被Calendar類的方法取代,不被推薦使用了。

    字符串時間對象轉換DateFormat:

    • 簡述: DateFormat是一個抽象類,大多時候都使用其的子類SimpleDateFormat類來實現。

    • 把時間對象按照"格式字符串指定的格式"轉成相應的字符串

      DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   //需要傳遞格式化字符
      String str = df.format(new Date(400000));   //將new Date(400000)強制轉換為格式化字符行駛的字符串進行返回
      System.out.println(str);  //,返回結果:1970-01-01 08:06:40
      
    • 把字符串按照"格式字符串指定的格式"轉成相應的時間對象

      DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh時mm分ss秒");   //指定可以轉換的字符串格式
      try {
          Date date = df2.parse("1983年05月10日 10時45分59秒");
          System.out.println(date);   //輸出:Tue May 10 10:45:59 CST 1983
      } catch (ParseException e) {
          e.printStackTrace();
      }
      
    • 需要輸出指定日期或時間元素可以參考下表去實現:如需輸出今天在今年中處在第幾天,可以使用以下代碼實現:

      DateFormat df3 = new SimpleDateFormat("D");
      String str3 = df3.format(new Date());
      System.out.println(str3);
      

    在這里插入圖片描述

    日期類Calendar:

    • 簡述:Calendar類提供了關于日期計算的相關功能,比如:年、月、日、時、分、秒的展示和計算;GregorianCalendar是Calendar的一個具體子類,提供了世界上大多數國家/地區使用的標準日歷系統。
    • 通過get方法獲取calendar對象相關屬性
      Calendar calendar = new GregorianCalendar(2999,10,9,22,10,5);  //創建日期類,擁有不同的構造函數,這里用的是GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay,int minute, int second),分別對應年月日時分秒
      System.out.println(calendar);  //java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2999,MONTH=10,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=9,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=10,SECOND=5,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
      int year = calendar.get(Calendar.YEAR);   //獲取年
      int month = calendar.get(Calendar.MONTH);  //獲取月,0-11表示對應的月份。0是1月,1是2月……11是12月
      int weekday = calendar.get(Calendar.DAY_OF_WEEK);   //獲取星期幾。1-7,1對應星期日,2對應星期一……7對應星期六
      int day = calendar.get(Calendar.DATE);   //得到該天為該月的第幾天,也可以用DAY_OF_MONTH
      
    • 設置日期的相關屬性
      //設置日期的相關屬性
      Calendar c = new GregorianCalendar();
      c.set(Calendar.YEAR,8012);
      
    • 日期的計算
      Calendar c2 = new GregorianCalendar();
      c2.add(Calendar.DATE,100);  //在當天的基礎上,往后一百天
      c2.add(Calendar.YEAR,100);  //在當天的基礎上,往前一百年
      
    • 日期對象和時間對象的轉換
      Calendar c2 = new GregorianCalendar();
      c2.add(Calendar.DATE,100);  //在當天的基礎上,往后一百天
      c2.add(Calendar.YEAR,100);  //在當天的基礎上,往前一百年
      
      //日期對象和時間對象的轉換
      Date d4 = c2.getTime(); //日期對象轉時間對象
      Calendar c3 = new GregorianCalendar();
      c3.setTime(d4);   //時間對象轉日期對象
      
    版權聲明:本文為weixin_43303530原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_43303530/article/details/106312380

    智能推薦

    Java常用類——File文件處理相關

    3.文件處理File類 java.io.File類:文件和目錄路徑名的抽象類表示形式 通過File對象可以訪問文件的屬性 isFile() 判斷是否為文件,file.isDirectory() 判斷是否為文件夾 exists() 判斷文件路徑是否真實存在 isHidden() 判斷是否具有隱藏屬性 lastModified() 獲取最后修改時間 mkdir() 創建文件夾,**mkdirs()**...

    Java常用類:時間處理示例代碼

    1. 測試Data的常用用法 2.測試時間對象和字符串之間的互相轉換 3. 測試日期類的使用 4. 定義一個可視化日歷...

    Java中日期、時間類處理

    前言: 不斷向上成長,你就會活成一道光,誰接近你就是接近光 大家好我是擦擦屁屁聞聞手,一個有味道的公眾號,讓大家久等了,搞了個人博客,由于也是第一次各種百度,皇天不負有心人,還真給我倒騰出來了,只是有點簡約,大家可以去看看,博客地址搭建過程以后整理整理發出來,畢竟知識還得銜接上,閑話少敘,開始我們今天的知識 jdk8之前 Date類 概述: java.util.Date 類 表示特定的瞬間,精確到...

    數組刪除其中某個對象的方法

    數組刪除其中的對象或元素,在前端是比較常見的需求。 我現在比較常用的方法如下: 這種方法只適合刪除具有唯一標識的對象。 有沒有想要脫單的小伙伴,加入我們的脫單星球,認識更多優秀的小哥哥小姐姐 特此聲明,星球是免費的,但是創建星球的時候說是必須輸入金額,所以只能先私聊,我再加你免費加入!...

    猜你喜歡

    圖床搭建以及圖床工具的使用

    為什么要用圖床和圖床工具? 比較下面三種md中的圖片url地址(均免費),你會使用哪一種? 選1?由于是本地路徑,文檔分享后給其他人打開后很可能顯示圖片加載失敗。 選2?雖然分享后可以顯示圖片,但能保證加載速度? 選3?我肯定選這種,即兼容2的瀏覽器訪問,又能保證訪問速度。 這樣就可以回答上面的問題了!保證瀏覽器訪問要用圖床,保證加載速度要用圖床工具,又不花錢想想就開心。 除此之外本篇博客還會講解...

    并發編程理論篇

    一、必備知識回顧 計算機又叫電腦,即通電的大腦,發明計算機是為了讓他通電之后能夠像人一樣去工作,并且它比人的工作效率更高,因為可以24小時不間斷 計算機五大組成部分 控制器 運算器 存儲器 輸入設備 輸出設備 計算機的核心真正干活的是CPU(控制器+運算器=中央處理器) 程序要想被計算機運行,它的代碼必須要先由硬盤讀到內存,之后cpu取指再執行 并發 看起來像同時運行的就可以稱之為并發 并行 真正...

    Java LinkedHashMap

    Java LinkedHashMap 前言 Map是我們在實際使用過程中常用的集合,HashMap在Java的實際開發中出鏡率很高,它通過hash算法實現了高效的非線程安全的集合,它有一個缺點就是,用戶插入集合的數據時無序,在我們需要一些有序的map的時候,我們就需要引入另外一個集合:LinkedHashMap。 LinkedHashMap是一個有序的非線程安全的集合,它是HashMap的子類,基...

    Spark Streaming處理文件(本地文件以及hdfs上面的文件)

    標題介紹文件流之前先介紹一下Dstream 下面是來自官網一段的說明,Discretized Streams或DStream是Spark Streaming提供的基本抽象。它表示連續的數據流,可以是從源接收的輸入數據流,也可以是通過轉換輸入流生成的已處理數據流。在內部,DStream由一系列連續的RDD表示,這是Spark對不可變的分布式數據集的抽象(有關更多詳細信息,請參見Spark編程指南)。...

    《痞子衡嵌入式半月刊》 第 8 期

    痞子衡嵌入式半月刊: 第 8 期 這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節氣,希望在每個交節之日準時發布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 7 期》 嘮兩句 今天是小滿,小滿節氣意味著進入了大幅降水的雨季。痞子...

    精品国产乱码久久久久久蜜桃不卡