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