Java常用類(lèi)之日期相關(guān)類(lèi)使用詳解
日期相關(guān)類(lèi)
1.Date類(lèi)
在標(biāo)準(zhǔn)Java類(lèi)庫(kù)中包含一個(gè)Date類(lèi),它的對(duì)象表示一個(gè)特定的瞬間,精確到毫秒。在網(wǎng)上商城下單時(shí),在對(duì)報(bào)銷(xiāo)單進(jìn)行審核時(shí),都需要獲取當(dāng)前的時(shí)間,通過(guò)Date類(lèi)就可以完成。
例子:Date類(lèi)的使用
package li.normalclass.date;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
//獲取當(dāng)前的時(shí)間 格式為 yyyyMMddhhmmss
Date date = new Date();//相當(dāng)于new Date(System.currentTimeMillis())
//操作當(dāng)前的時(shí)間
System.out.println(date.toString());//Sat Aug 06 19:15:28 CST 2022
System.out.println(date.toLocaleString());//2022-8-6 19:16:06
System.out.println(System.currentTimeMillis());//計(jì)算從1970年1月1日 0:00:00到目前為止的毫秒數(shù)
System.out.println(date.getYear());//122 =2022-1900
System.out.println(date.getMonth());//7 0-11 現(xiàn)在是八月
System.out.println(date.getDate());//6 日
System.out.println(date.getDay());//6 當(dāng)前為星期六 注:星期日為0
System.out.println(date.getHours());//19 當(dāng)前為19點(diǎn)
System.out.println(date.getMinutes());//26 當(dāng)前為26分
System.out.println(date.getSeconds());//16 當(dāng)前為16秒
System.out.println(date.getTime());//1659785176358 計(jì)算從1970年1月1日 0:00:00到目前為止的毫秒數(shù)
//獲取當(dāng)前的時(shí)間 格式為 yyyyMMdd
java.sql.Date sdate = new java.sql.Date(System.currentTimeMillis());
System.out.println(sdate.toString());//2022-08-06
java.sql.Date sdate2 = java.sql.Date.valueOf("1896-9-10");
System.out.println(sdate2.toString());//1896-09-10
}
}查看API文檔大家可以看到其實(shí)Date類(lèi)中的很多方法已經(jīng)過(guò)時(shí)了。JDK1.1之前的Date包含了日期操作、字符串轉(zhuǎn)化為對(duì)象等操作。經(jīng)過(guò)JDK1.1之后,日期操作類(lèi)一般使用Calendar類(lèi),而字符串的轉(zhuǎn)化 使用DateFormat類(lèi)。
2.DateFormat類(lèi)
Format:格式
DateFormat是一個(gè)抽象類(lèi),一般使用它的子類(lèi)SimpleDateFormat類(lèi)來(lái)實(shí)現(xiàn)。主要作用就是把時(shí)間對(duì)象轉(zhuǎn)化為指定格式的字符串。反之,就是把指定格式的字符串轉(zhuǎn)化為時(shí)間對(duì)象。
字符串----->日期
日期----->字符串
例子:
package li.normalclass.date;
import java.text.*;
import java.util.Date;
/**
* 主要操作:
* DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定識(shí)別的格式
*
* Date date = sdf.parse(strdate);//將字符串轉(zhuǎn)換成日期
*
* String strdate2 = sdf.format(date);//將日期轉(zhuǎn)換成字符串
*/
public class TestDateFormat {
public static void main(String[] args) throws ParseException {
String strdate = "1999-12-23 12:12:12";//字符串
//String---->Date
//DateFormat是抽象類(lèi),要實(shí)例化只能引用它的子類(lèi)SimpleDateFormat
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定識(shí)別的格式
Date date = sdf.parse(strdate);//將字符串轉(zhuǎn)換成日期
String strdate2 = sdf.format(date);//將日期轉(zhuǎn)換成字符串
System.out.println(strdate2);
}
}

3.Calendar類(lèi)
Calendar:日歷
例子:
package li.normalclass.date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class TestCalendar {
public static void main(String[] args) {
//獲取當(dāng)前的時(shí)間
Calendar cal = new GregorianCalendar();
// 輸出當(dāng)前的時(shí)間
System.out.println(cal);
//java.util.GregorianCalendar[time=1659791839017,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=7,WEEK_OF_YEAR=32,WEEK_OF_MONTH=1,DAY_OF_MONTH=6,DAY_OF_YEAR=218,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=17,SECOND=19,MILLISECOND=17,ZONE_OFFSET=28800000,DST_OFFSET=0]
System.out.println(cal.get(Calendar.YEAR));//2022
System.out.println(cal.get(Calendar.MONTH));//7 0~11 7代表8月
System.out.println(cal.get(Calendar.DATE));//6 代表6號(hào)
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//7 代表周六 從周日為1開(kāi)始計(jì)算一周
//改變時(shí)間
cal.set(Calendar.DATE,1);//直接指定日期 1號(hào)
cal.set(Calendar.MONTH,1);//直接指定月數(shù) 2月
cal.add(Calendar.DATE,2);//在設(shè)置的日期上再加上兩天
System.out.println(cal.get(Calendar.YEAR));//2022 -- 22年
System.out.println(cal.get(Calendar.MONTH));//1 -- 2月
System.out.println(cal.get(Calendar.DATE));//3 -- 3號(hào)
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//5 -- 周四
System.out.println(cal.getActualMaximum(Calendar.DATE));//28 -- 指定月一共有多少天
}
}到此這篇關(guān)于Java常用類(lèi)之日期相關(guān)類(lèi)使用詳解的文章就介紹到這了,更多相關(guān)Java日期類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 交換兩個(gè)變量的數(shù)值實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇Java 交換兩個(gè)變量的數(shù)值實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
詳解SpringBoot構(gòu)建Docker鏡像的3種方式
這篇文章主要介紹了SpringBoot構(gòu)建Docker鏡像的3種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Spring Boot攔截器實(shí)現(xiàn)步驟及測(cè)試實(shí)例
這篇文章主要介紹了Spring Boot攔截器實(shí)現(xiàn)步驟及測(cè)試實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
SpringMVC異常處理知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于SpringMVC異常處理相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-10-10
java Swing JFrame框架類(lèi)中setDefaultCloseOperation的參數(shù)含義與用法示例
這篇文章主要介紹了java Swing JFrame框架類(lèi)中setDefaultCloseOperation的參數(shù)含義與用法,結(jié)合實(shí)例形式分析了Swing組件的JFrame框架類(lèi)中setDefaultCloseOperation方法的簡(jiǎn)單使用技巧,需要的朋友可以參考下2017-11-11
Maven中Junit測(cè)試@Test等注解無(wú)法識(shí)別的問(wèn)題及解決
這篇文章主要介紹了Maven中Junit測(cè)試@Test等注解無(wú)法識(shí)別的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
spring?boot整合mongo查詢(xún)converter異常排查記錄
這篇文章主要為大家介紹了spring?boot整合mongo查詢(xún)時(shí)拋出converter異常的排查解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
解決FastJson中"$ref重復(fù)引用"的問(wèn)題方法
這篇文章主要介紹了解決FastJson中"$ref重復(fù)引用"的問(wèn)題方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11

