java?Date和SimpleDateFormat時(shí)間類(lèi)詳解
前言:
任何的收獲不是巧合,而是每天的努力與堅(jiān)持得來(lái)的!人生因有夢(mèng)想而充滿(mǎn)動(dòng)力,不怕你每天邁一小步,只怕你停滯不前;不怕你每天做一點(diǎn)事,只怕你無(wú)所事事。堅(jiān)持,是生命的一種毅力;執(zhí)行,是努力的一種堅(jiān)持!
在這鋼筋混凝土的森林里,數(shù)不盡的豺狼虎豹,能做的就是努力往上爬,一路的打怪升級(jí),為的只是讓太陽(yáng)有空隙落在頭上~
我們上一篇聊到了java之StringBuilder和stringbuffer類(lèi),這一篇我們聊一下Date和SimpleDateFormat處理時(shí)間,針對(duì)于以下的概念,都會(huì)有實(shí)體例子配合著,給大家演示,希望給大家?guī)?lái)一些幫助?。。?
一.介紹
java.util包中的Date類(lèi)表示特定的時(shí)間,精確到毫秒。如果要想使用我們的Date類(lèi),那么我們必須得引入我們的Date類(lèi)。
Date類(lèi)直接寫(xiě)入年份是得不到正確的結(jié)果的。 因?yàn)閖ava中Date是從1900年開(kāi)始算的,所以前面的第一個(gè)參數(shù)只要填入從1900年后過(guò)了多少年就是你想要得到的年份。 月需要減1,日可以直接插入。 這種方法用的比較少,常用的是第二種方法。
這種方法是將一個(gè)符合特定格式,比如yyyy-MM-dd,的字符串轉(zhuǎn)化成為Date類(lèi)型的數(shù)據(jù)。 首先,定義一個(gè)Date類(lèi)型的對(duì)象 Date date = null; 再定義一個(gè)String類(lèi)型的符合格式的字符串 String dateStr = "2010-9-10"; 把這個(gè)字符串進(jìn)行拆分 dateDivide = dateStr.split("-"); 把年月日分別取出,賦給Calendar,用 Calendar的getTime();取得日期再賦給date。
二.知識(shí)點(diǎn)介紹
- 1、Date類(lèi)的聲明
- 2、Date類(lèi)的常用方法
- 3、SimpleDateFormat格式化日期
三.知識(shí)點(diǎn)講解
1、Date類(lèi)的聲明
如果要想取得日期時(shí)間,我們可以實(shí)例化Date類(lèi)
(1)獲得當(dāng)前日期時(shí)間
Date d=new Date();
(2)獲得指定日期時(shí)間
Date d=new Date(long date);
注意:要想得到當(dāng)前時(shí)間的long date 我們可以用getTime();方法
代碼演示:
package Test2; import java.util.Date; public class Tested { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String args[]){ //產(chǎn)生日期對(duì)象 Date d=new Date(); System.out.println(d); //獲取時(shí)間為長(zhǎng)整型,時(shí)間戳 long l=d.getTime(); System.out.println(l); Date d1=new Date(l); System.out.println(d1); System.out.println("============="+name+"============="); } }
2、Date類(lèi)的常用方法
- (1)getYear()//年份,Date對(duì)象中年份減去1900以后的值,所以需要顯示對(duì)應(yīng)的年份則需要在返回值的基礎(chǔ)上加上1900
- (2)getMonth()//月份,Date類(lèi)規(guī)定一月是0,二月是1,三月是2,后續(xù)的依次類(lèi)推。
- (3)getDate()//日期
- (4)getHours()//小時(shí)
- (5)getMinutes()//分鐘
- (6)getSeconds()//秒
- (7)getDay()//星期,Date類(lèi)規(guī)定周日是0,周一是1,周二是2,后續(xù)的依次類(lèi)推。
代碼演示:
package Test2; //導(dǎo)入時(shí)間包 import java.util.Date; public class Tested { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String args[]){ //創(chuàng)建時(shí)間對(duì)象 Date d2 = new Date(); //年份,Java中的Date表示的是自1900年以來(lái)所經(jīng)過(guò)的時(shí)間 int year = d2.getYear() + 1900; //月份,最后一個(gè)月取決于一年中的月份數(shù)。 因?yàn)檫@個(gè)值的初始值是0,因此我們要用它來(lái)表示正確的月份時(shí)就需要加1。 int month = d2.getMonth() + 1; //日期 int date = d2.getDate(); //小時(shí) int hour = d2.getHours(); //分鐘 int minute = d2.getMinutes(); //秒 int second = d2.getSeconds(); //星期幾 int day = d2.getDay(); System.out.println("年份:" + year); System.out.println("月份:" + month); System.out.println("日期:" + date); System.out.println("小時(shí):" + hour); System.out.println("分鐘:" + minute); System.out.println("秒:" + second); System.out.println("星期:" + day); System.out.println("============="+name+"============="); } }
3、SimpleDateFormat格式化日期
SimpleDateFormat 是一個(gè)以語(yǔ)言環(huán)境敏感的方式來(lái)格式化和分析日期的類(lèi)。SimpleDateFormat 允許你選擇任何用戶(hù)自定義日期時(shí)間格式來(lái)運(yùn)行。
(1)SimpleDateFormate初始化:
SimpleDateFormate sdf=new SimpleDateFormate(日期格式);
注意:日期格式
(2)SimpleDateFormat常用方法:
- format(Date d):將日期格式轉(zhuǎn)化為字符串?dāng)?shù)據(jù)
- parse(String s):將字符串格式轉(zhuǎn)化為日期數(shù)據(jù)
代碼演示:
package Test2; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; class Person extends Object{ public static void main(String args[]){ Date d=new Date(); //傳入指定時(shí)間格式 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //日期格式化輸出 System.out.println(sdf.format(d)); } }
定義一個(gè)工具類(lèi):
package Test2; //導(dǎo)入時(shí)間包import java.text.SimpleDateFormat; import java.util.Date; public class MyDate { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; // 定義的MyDateDemo類(lèi) private SimpleDateFormat sd = null; // 聲明SimpleDateFormat對(duì)象sd public String getDate01() { // 定義getDate01方法 this.sd = new SimpleDateFormat("yyyy-MM-dd HH:mm;ss.sss"); // 得到一個(gè)"yyyy-MM-dd // HH:mm;ss.sss"格式日期 return this.sd.format(new Date()); // 將當(dāng)前日期進(jìn)行格式化操作 } public String getDate02() { // 定義getDate02方法 this.sd = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒sss毫秒"); // 得到一個(gè)"yyyy年MM月dd日 //HH時(shí)mm分ss秒sss毫秒"格式日期 return this.sd.format(new Date()); // 將當(dāng)前日期進(jìn)行格式化操作 } public String getDate03() {// 定義getDate03方法 this.sd = new SimpleDateFormat("yyyyMMddHHmmsssss"); // 得到一個(gè)"yyyyMMddHHmmsssss"格式日期(也就是時(shí)間戳) return this.sd.format(new Date());// 將當(dāng)前日期進(jìn)行格式化操作 } }
主方法調(diào)用:
package com.Test; import Test2.MyDate; import java.util.Date; public class Main { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String[] args) { // 主方法 MyDate dd = new MyDate(); // 聲明dd對(duì)象,并實(shí)例化 System.out.println("默認(rèn)日期格式: " + new Date()); // 分別調(diào)用方法輸入不同格式的日期 System.out.println("英文日期格式: " + dd.getDate01()); System.out.println("中文日期格式: " + dd.getDate02()); System.out.println("時(shí)間戳: " + dd.getDate03()); System.out.println("============="+name+"============="); } }
4、精煉練習(xí)
4.1 題目
- (1)獲取到當(dāng)前日期,并且打印出yyyy-MM-dd hh:mm:ss的形式
- (2)獲取當(dāng)前日期的年份和月份并進(jìn)行輸出
4.2 實(shí)驗(yàn)步驟
- (1)使用date對(duì)象獲取當(dāng)前日期
- (2)使用simpleDateFormat進(jìn)行格式化日期
- (3)使用date的常用方法來(lái)進(jìn)行獲取年份和月份
4.3 代碼演示
package com.Test; import Test2.MyDate; import java.text.SimpleDateFormat; import java.util.Date; public class Main { private final static String name = "磊哥的java歷險(xiǎn)記-@51博客"; public static void main(String[] args) { // 主方法 //獲取當(dāng)前日期 Date d2=new Date(); //轉(zhuǎn)換為yyyy-MM-dd hh:mm:ss SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //日期格式化 System.out.println("日期格式化:"+sdf.format(d2)); int year = d2.getYear() + 1900;//年份 int month = d2.getMonth() + 1;//月份 System.out.println("年份:" + year); System.out.println("月份:" + month); System.out.println("============="+name+"============="); } }
結(jié)語(yǔ)
到此這篇關(guān)于java Date和SimpleDateFormat時(shí)間類(lèi)詳解的文章就介紹到這了,更多相關(guān)java Date類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何通過(guò)eclipse web項(xiàng)目導(dǎo)入itellij idea并啟動(dòng)
這篇文章主要介紹了如何通過(guò)eclipse web項(xiàng)目導(dǎo)入itellij idea并啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12java聯(lián)調(diào)生成測(cè)試數(shù)據(jù)工具類(lèi)方式
這篇文章主要介紹了java聯(lián)調(diào)生成測(cè)試數(shù)據(jù)工具類(lèi)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03詳解Java去除json數(shù)據(jù)中的null空值問(wèn)題
這篇文章主要介紹了詳解Java去除json數(shù)據(jù)中的null空值問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼
這篇文章主要介紹了Java Selenium實(shí)現(xiàn)多窗口切換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09解決Error:(1,?1)?java:?非法字符:?'\ufeff'問(wèn)題
這篇文章主要介紹了解決Error:(1,?1)?java:?非法字符:?'\ufeff'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Java?Servlet實(shí)現(xiàn)表白墻的代碼實(shí)例
最近用Servlet做了個(gè)小項(xiàng)目,分享給大家,下面這篇文章主要給大家介紹了關(guān)于Java?Servlet實(shí)現(xiàn)表白墻的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02