Java常用的時間類以及其轉(zhuǎn)化方式
最近經(jīng)常用到時間這個參數(shù),無論是自己獲取到傳進去,還是從數(shù)據(jù)庫獲取出來,都是Java開發(fā)必備的一門基本功。
一、Date類
類 Date 表示特定的瞬間,精確到毫秒。
最簡單也最經(jīng)典的用法:
Date date = new Date();// 獲取當前的年月日時分秒以及星期和時區(qū)
但是,如果我們按自己想要的格式來顯示日期,一般會引用DateFormat類的子類SimpleDateFormat
二、DateFormat類
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關(guān)的方式格式化并解析日期或時間。
DateFormat類是抽象類,所以使用其子類SimpleDateFormat。
一般日期類型轉(zhuǎn)String類型,或者自定義String類型轉(zhuǎn)日期類型都會用到它。
注:"HH:mm:ss"和"hh:mm:ss" ,前者是24小時制,后者是12小時制
注:SimpleDateFormat中對應(yīng)String中的格式,才能成功轉(zhuǎn)換
三、小案例:今天是今年的第幾天?
思路:
將今年第一天和今天都封裝到字符串里
將字符串轉(zhuǎn)換成日期對象
將日期對象轉(zhuǎn)換成毫秒值
讓今天的毫秒值減去第一天的毫秒值
將毫秒值轉(zhuǎn)換成天數(shù)
四、Calendar類
Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。
public static void main(String[] args) { //Calendar對象,無參,默認為當前日期 Calendar calendar =new GregorianCalendar(); //獲取當前年份 System.out.println(calendar.get(Calendar.YEAR)); //獲取當前月份 0表示一月,1表示二月......11表示12月 System.out.println(calendar.get(Calendar.MONTH)); //獲取當前日期 也可以使用DAY_OF_MONTH System.out.println(calendar.get(Calendar.DATE)); //獲取當前時 24小時進制 System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); //獲取當前分 System.out.println(calendar.get(Calendar.MINUTE)); //獲取當前秒 System.out.println(calendar.get(Calendar.SECOND)); //獲取今天是這個月的第幾個星期 System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); //獲取今天是星期幾 1表示星期天,2表示星期一......7表率星期六 System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 設(shè)置日期時間(月份是從0開始的)(法一) calendar =new GregorianCalendar(2021, 11, 14, 20, 20,20); // 2021-11-14 20:20:20 //(法二) calendar.set(Calendar.YEAR, 2021); calendar.set(Calendar.MONTH, 10); calendar.set(Calendar.DAY, 14); System.out.println("Calendar和Date轉(zhuǎn)換************"); Date now = calendar.getTime(); System.out.println(now); System.out.println(calendar.setTime(now)); System.out.println("Calendar日期計算以及判斷***********"); calendar = new GregorianCalendar(); Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, 2035); //是否在時間(calendar2)之后 System.out.println(calendar.after(calendar2)); //是否在時間(calendar2)之前 System.out.println(calendar.before(calendar2)); //增加多少年月日,時分秒與之同理 calendar.add(Calendar.YEAR, -10); calendar.add(Calendar.MONTH, 5); calendar.add(Calendar.DAY, 1); }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java運行時環(huán)境之ClassLoader類加載機制詳解
這篇文章主要給大家介紹了關(guān)于Java運行時環(huán)境之ClassLoader類加載機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01已解決:No ''Access-Control-Allow-Origin''跨域問題
這篇文章主要介紹了已解決:No 'Access-Control-Allow-Origin' 跨域,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06SpringMVC4.3?HttpMessageConverter接口實現(xiàn)源碼分析
這篇文章主要為大家介紹了SpringMVC4.3?HttpMessageConverter接口實現(xiàn)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09java線程并發(fā)blockingqueue類使用示例
BlockingQueue是一種特殊的Queue,若BlockingQueue是空的,從BlockingQueue取東西的操作將會被阻斷進入等待狀態(tài)直到BlocingkQueue進了新貨才會被喚醒,下面是用BlockingQueue來實現(xiàn)Producer和Consumer的例子2014-01-01基于apache poi根據(jù)模板導(dǎo)出excel的實現(xiàn)方法
下面小編就為大家?guī)硪黄赼pache poi根據(jù)模板導(dǎo)出excel的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06java中hasNextInt判斷后無限循環(huán)輸出else項的解決方法
這篇文章主要介紹了java中hasNextInt判斷后無限循環(huán)輸出else項的解決方法的相關(guān)資料,需要的朋友可以參考下2016-10-10Java中Hashtable類與HashMap類的區(qū)別詳解
Hashtable的應(yīng)用非常廣泛,HashMap是新框架中用來代替Hashtable的類,也就是說建議使用HashMap,不要使用Hashtable。可能你覺得Hashtable很好用,為什么不用呢?這里簡單分析他們的區(qū)別。2016-01-01