1. 程式人生 > >java calendar 常用功能總結(SimpleDateFormat 格式化取值)

java calendar 常用功能總結(SimpleDateFormat 格式化取值)

importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.TimeZone;
publicclassTest{
       publicstaticvoidmain(String[]args){
              SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              Calendarcalendar=Calendar.getInstance();
              System.out.println(calendar.getTime());
              System.out.println(calendar.getTimeInMillis());
              System.out.println(calendar.getTimeZone());
              System.out.println("===============獲取不同時區的時間Calendar的TimeZone==============");
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT")).getTime());
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT+8")).getTime());
              System.out.println("==Calendar的getTime方法返回值是沒有時區的  所以結果一樣==");
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT")).getTimeZone());
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT+8")).getTimeZone());
              System.out.println("===============獲取不同時區的時間Calendar的Hour==============");
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT")).get(Calendar.HOUR));
              System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT+8")).get(Calendar.HOUR));
              System.out.println("===============獲取不同時區的時間SimpleDateFormat==============");
              sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
          System.out.println(sdf.format(calendar.getTime()));
          sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
          System.out.println(sdf.format(calendar.getTime()));
          
          System.out.println("=========Calendar設定指定時間點 ==1.date===========");
          Calendarcal=Calendar.getInstance();
          Datedate=newDate();
         SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try{
                date=format.parse("2017-12-04 19:29:29");
                System.out.println(format.format(date));
              }catch(ParseExceptione){
                     e.printStackTrace();
              }
         System.out.println("=========Calendar設定指定時間點 ==2.Calendar===========");
         Calendarcals=Calendar.getInstance();
         //Calendar 的 month 從 0 開始,也就是全年 12 個月由 0 ~ 11 進行表示。 此處如果傳12則顯示下一年1月
         cals.set(2017,11,04,19,28,28);
         System.out.println(format.format(cals.getTime()));
         
         System.out.println("==============Calendar顯示當前時間====================");
         Calendarss=Calendar.getInstance();
         ss.setTime(newDate());
         System.out.println(format.format(ss.getTime()));
         System.out.println(format.format(Calendar.getInstance().getTime()));
         
         System.out.println("==============Calendar顯示當前年月日時分秒周幾====================");
         System.out.println("current year="+ss.get(Calendar.YEAR));
         System.out.println("current month="+(ss.get(Calendar.MONTH)+1)+"");
         System.out.println("current day="+ss.get(Calendar.DAY_OF_MONTH));
         System.out.println("current week of day="+(ss.get(Calendar.DAY_OF_WEEK)-1)+"");
         System.out.println("current hour="+ss.get(Calendar.HOUR));
         System.out.println("current HOUR_OF_DAY="+ss.get(Calendar.HOUR_OF_DAY));
         System.out.println("current minutes="+ss.get(Calendar.MINUTE));
         System.out.println("current seconds="+ss.get(Calendar.SECOND));
         
         System.out.println("===========設定時間一小時前 、兩天後===========");
         ss.add(Calendar.HOUR,-1);
         System.out.println(format.format(ss.getTime()));
         ss.add(Calendar.DAY_OF_MONTH,-2);
         System.out.println(format.format(ss.getTime()));
         
         System.out.println("==============Calendar時間比較 ,設定2小時後================");
         CalendarnewCalendar=Calendar.getInstance();
         newCalendar.add(Calendar.HOUR,2);
         //指定引數大於被比較數 返回1  小於返回-1 等於返回 0
         System.out.println("比較時間大小 結果="+newCalendar.compareTo(ss));
         System.out.println("==============Calendar時間比較 ,設定1天以前================");
         newCalendar.add(Calendar.DAY_OF_MONTH,-1);
         System.out.println("比較時間大小 結果="+newCalendar.compareTo(ss));
         
         System.out.println("==========獲取指定兩個時間點之間的時間差===========");
         longmills=ss.getTimeInMillis()-newCalendar.getTimeInMillis();
         System.out.println("毫秒差"+mills);
         //====要計算時間差,可用 Calendar.getTimeInMillis() 取得兩個時間的微秒級的時間差,再加以換算即可,比如獲得相差天數,程式碼如下:====
         System.out.println("毫秒差"+mills/(24*60*60*1000));//轉換成小時
         
         System.out.println("================顯示當年天數當月天數當月星期數===============");
         Calendarcalendar2=Calendar.getInstance();
         calendar2.set(calendar2.YEAR,2017);
         calendar2.set(calendar2.MONTH,10);
         System.out.println(calendar2.getActualMaximum(calendar2.DAY_OF_MONTH));
         System.out.println(calendar2.getActualMaximum(calendar2.DAY_OF_YEAR));
         System.out.println(calendar2.getActualMaximum(calendar2.DAY_OF_WEEK));
         System.out.println(calendar2.getActualMaximum(calendar2.DAY_OF_WEEK_IN_MONTH));
       }
       
       @org.junit.Test
       publicvoidgetDays(){
              //時間精確到時分秒時會出現時間間隔除以(24*60*60*1000)四捨五入為0的情況,此時就要按day_of_year來算天數。跨年加上所跨               年度總天數
              //相隔時間不滿一天轉int為0
              Calendarc1=Calendar.getInstance();
              c1.set(2016,12,30,20,0,0);
              Calendarc2=Calendar.getInstance();
              c2.set(2016,12,31,8,0,0);
              intres=(int)((c1.getTimeInMillis()-c2.getTimeInMillis())/(24*60*60*1000));
              System.out.println("相隔天數"+getDaysBetween(c1,c2)+"====按毫秒差算出的天數"+res);
              
       }
       //當遇到兩天相隔不足一天的,可以用該方法,更通用
       publicintgetDaysBetween(Calendard1,Calendard2){   
       if(d1.after(d2)){ // swap dates so that d1 is start and d2 is end   
            java.util.Calendarswap=d1;   
           d1=d2;   
           d2=swap;   
       }   
       intdays=d2.get(Calendar.DAY_OF_YEAR)-d1.get(Calendar.DAY_OF_YEAR);   
       inty2=d2.get(Calendar.YEAR);   
       if(d1.get(Calendar.YEAR)!=y2){   
           d1=(Calendar)d1.clone();   
           do{   
               days+=d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到當年的實際天數   
               d1.add(Calendar.YEAR,1);   
           }while(d1.get(Calendar.YEAR)!=y2);   
       }   
       returndays;   
   }
}


相關推薦

java calendar 常用功能總結SimpleDateFormat 格式化

importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; importjava.util.TimeZone; publicclassTest

ES6 常用功能總結箭頭函式、let/const、解構賦、模板字串、Promise物件等

let關鍵字 作用:與var類似,用於宣告一個變數 與var不同:let所宣告的變數,在塊級作用域內有效,也就是隻在它所在的程式碼塊有效 { let a = 100; var b = 10; } console.log(a); //undefined

Dubbo配置篇常用配置總結配置檔案詳解

1.暴露服務,定義服務資訊 服務配置,用於暴露一個服務,定義服務的元資訊,一個服務可以用多個協議暴露,一個服務也可以註冊到多個註冊中心。 <dubbo:service id="sendSmsSOAService" interface="com.sms.api.service.Sen

35 個 Java 程式碼效能優化總結複製於碼農網

前言 程式碼優化,一個很重要的課題。可能有些人覺得沒用,一些細小的地方有什麼好修改的,改與不改對於程式碼的執行效率有什麼影響呢?這個問題我是這麼考慮的,就像大海里面的鯨魚一樣,它吃一條小蝦米有用嗎?沒用,但是,吃的小蝦米一多之後,鯨魚就被餵飽了。程式碼優化也是一樣,如果專案著眼於儘快無BUG

Linux常用命令總結大佬請忽略

最近Linux系統操作較多,整理了一下這幾天常用的命令 注:不是基礎的那種ls,cd,rm等命令,而是在實際操作中,使用較為頻繁的命令。 1:vim 檔名 在Linux上修改檔案,vim使用頻繁,vim 檔名進入後,輸入i,開始進行編輯,編輯好之後按esc,然後輸入:w

Java對map進行排序包括按鍵和

package com.xin.demo; import java.util.ArrayList; import java.util.Collections; import java.util.C

Java程式碼常用功能實現總結

文章目錄 1.如何取得map裡key得最大值: 2.多執行緒寫法樣例: 1.如何取得map裡key得最大值: 方法一: 將Map中的k

Java程式碼常用功能實現總結

目錄 1.獲取當前系統時間: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式 System.out.prin

java常用集合總結

 物件的集合 如果程式的物件數量有限,且壽命可知,那麼這個程式是相當簡單的。 陣列陣列與其它容器的區別體現在三個方面:效率,型別識別以及可以持有primitives。陣列是Java提供的,能隨機儲存和訪問reference序列的諸多方法中的,最高效的一種。陣列是一個簡

Java常用運算符3

註意 sys 有趣的 open size 除法 如果能 都是 pla 什麽是運算符: 運算符是一種“功能”符號,用以通知 Java 進行相關的運算。譬如,我們需要將變量 age 的值設置為 20 ,這時候就需要一個“=”,告

Java IO流學習總結

rar output 出現 arr system 不存在 技術分享 輸出 寫入 原文地址:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html Java流操作有關的類或接口: Java流類圖結構:

Go常用功能總結一階段

sep format 字節數組 ngx str1 [] 構造函數 當前時間 mat 1. go語言從鍵盤獲取輸入內容   <1. 最簡單的辦法是使用 fmt 包提供的 Scan 和 Sscan 開頭的函數。請看以下程序: package main import "

[轉載] java多線程總結

span 創建方式 stop interface 同步 存在 wid 實現類 running 轉載自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 作者:Windstep 多線程作為Java中很重要的一個知識點,在此

[轉載] java多線程總結

判斷 home run 選擇 作者 得到 生命周期 on() .com 轉載自:http://www.cnblogs.com/lwbqqyumidi/p/3817517.html 作者:Windstep 四.Java多線程的阻塞狀態與線程控制 上文已經提到Java阻塞的

[轉載] java多線程總結

java多線程 home gif 結果 訪問 關系 .com mon 問題 轉載自: http://www.cnblogs.com/lwbqqyumidi/p/3821389.html 作者:Windstep 本文主要接著前面多線程的兩篇文章總結Java多線程中的線程安全問

Java中Cookie常用操作類Spring中操作Cookie

方法 .net str blog .cn shm efault csdn int 說明:Cookie下用Key取值沒有快速的方法,只能便利循環去取。 import java.util.HashMap; import java.util.Map; import

集合總結全是代碼----------java基礎學習

map() 讀取 簡單 util 技術分享 test 結構 dsa tag 前言:在剛學習的時候,切記不能粘貼復制,更不能眼高手低,再簡單的代碼,都要自己獨立動手寫。 第一步:目錄結構 第二步:代碼區 Student.java:(一個學生的實體類) 1 packag

Java基礎零碎知識點總結持續補充

多態 java基礎 引用類型 ram object 轉換 安全 特性 翻譯 1.重載:同名不同參 重寫:同名同參同返回類型(方法體與父類一致),只存在於繼承關系中(多態),需要父類原有方法可用super(),子類函數訪問修飾權限不能少於父類。 2.OOP(Object

linux常用命令總結12.26

內容 強制 more clas 所有 查看 ado inux 創建目錄 ls /boot 查看目錄內容 ls /boot -a /boot 查看目錄內的所有內容 ls -a

Java運算符使用總結重點:自增自減、位運算和邏輯運算

運算 計算器 可讀性 過多 移位運算 style avi 學會 new Java運算符共包括這幾種:算術運算符、比較運算符、位運算符、邏輯運算符、賦值運算符和其他運算符。(該圖來自網絡) 簡單的運算符,就不過多介紹使用了,可自行測試。關於賦值運算,可以結合算術運