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運算符共包括這幾種:算術運算符、比較運算符、位運算符、邏輯運算符、賦值運算符和其他運算符。(該圖來自網絡) 簡單的運算符,就不過多介紹使用了,可自行測試。關於賦值運算,可以結合算術運