首頁 > 軟體

java Date和SimpleDateFormat時間類詳解

2022-08-30 22:00:35

前言:

任何的收穫不是巧合,而是每天的努力與堅持得來的!人生因有夢想而充滿動力,不怕你每天邁一小步,只怕你停滯不前;不怕你每天做一點事,只怕你無所事事。堅持,是生命的一種毅力;執行,是努力的一種堅持!

在這鋼筋混凝土的森林裡,數不盡的豺狼虎豹,能做的就是努力往上爬,一路的打怪升級,為的只是讓太陽有空隙落在頭上~ 

我們上一篇聊到了java之StringBuilder和stringbuffer類,這一篇我們聊一下Date和SimpleDateFormat處理時間,針對於以下的概念,都會有實體例子配合著,給大家演示,希望給大家帶來一些幫助!!!  

一.介紹

java.util包中的Date類表示特定的時間,精確到毫秒。如果要想使用我們的Date類,那麼我們必須得引入我們的Date類。

Date類直接寫入年份是得不到正確的結果的。 因為java中Date是從1900年開始算的,所以前面的第一個引數只要填入從1900年後過了多少年就是你想要得到的年份。 月需要減1,日可以直接插入。 這種方法用的比較少,常用的是第二種方法。

這種方法是將一個符合特定格式,比如yyyy-MM-dd,的字串轉化成為Date型別的資料。 首先,定義一個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[]){
//產生日期物件
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以後的值,所以需要顯示對應的年份則需要在返回值的基礎上加上1900
  • (2)getMonth()//月份,Date類規定一月是0,二月是1,三月是2,後續的依次類推。
  • (3)getDate()//日期
  • (4)getHours()//小時
  • (5)getMinutes()//分鐘
  • (6)getSeconds()//秒
  • (7)getDay()//星期,Date類規定週日是0,週一是1,週二是2,後續的依次類推。

程式碼演示:

package Test2;
//匯入時間包
import java.util.Date;
public class Tested {
private final static String name = "磊哥的java歷險記-@51部落格";
public static void main(String args[]){
//建立時間物件
Date d2 = new Date();
//年份,Java中的Date表示的是自1900年以來所經過的時間
int year = d2.getYear() + 1900;
//月份,最後一個月取決於一年中的月份數。 因為這個值的初始值是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 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何使用者自定義日期時間格式來執行。

(1)SimpleDateFormate初始化:

SimpleDateFormate sdf=new SimpleDateFormate(日期格式);

 注意:日期格式

(2)SimpleDateFormat常用方法:

  •  format(Date d):將日期格式轉化為字串資料
  •  parse(String s):將字串格式轉化為日期資料

程式碼演示:

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;
//匯入時間包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());// 將當前日期進行格式化操作
}
}

主方法呼叫:

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());
// 分別呼叫方法輸入不同格式的日期
System.out.println("英文日期格式: " + dd.getDate01());
System.out.println("中文日期格式: " + dd.getDate02());
System.out.println("時間戳: " + dd.getDate03());
System.out.println("============="+name+"=============");

}
}

4、精煉練習

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();
//轉換為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+"=============");
}
}

結語

到此這篇關於java Date和SimpleDateFormat時間類詳解的文章就介紹到這了,更多相關java Date類內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com