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