【JavaSE筆記】Java常用類及其方法(七)_Date

本期知識點:
Date類

類 Date (java.util)

類 Date 表示特定的瞬間,精確到毫秒。

在 JDK 1.1 之前,類 Date 有兩個其他的函數。它允許把日期解釋爲年、月、日、小時、分鐘和秒值。它也允許格式化和解析日期字符串。不過,這些函數的 API 不易於實現國際化。從 JDK 1.1 開始,應該使用 Calendar 類實現日期和時間字段之間轉換,使用 DateFormat 類來格式化和解析日期字符串。Date 中的相應方法已廢棄。

儘管 Date 類打算反映協調世界時 (UTC),但無法做到如此準確,這取決於 Java 虛擬機的主機環境。當前幾乎所有操作系統都假定 1 天 = 24 × 60 × 60 = 86400 秒。但對於 UTC,大約每一兩年出現一次額外的一秒,稱爲“閏秒”。閏秒始終作爲當天的最後一秒增加,並且始終在 12 月 31 日或 6 月 30 日增加。例如,1995 年的最後一分鐘是 61 秒,因爲增加了閏秒。大多數計算機時鐘不是特別的準確,因此不能反映閏秒的差別。

1. Date類的構造方法:

public Date( )  分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。
public Date(long date)   分配 Date
import java.util.Date;

//類 Date 表示特定的瞬間,精確到毫秒。 

//構造方法:
//	public Date()分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。
//	public Date(long date)分配 Date 
public class Date類的構造方法 {
	public static void main(String[] args) {
		//創建日期對象;
		Date a = new Date();//需要導包
		System.out.println(a);//Sat Jul 29 13:52:22 CST 2017
		
		//public Date(long date):傳遞的是一個時間毫秒值
		long time = 1000/60/60;
		Date b = new Date(time);
		System.out.println(b);//Thu Jan 01 08:00:00 CST 1970
		
	}
}


2. Date類的常用方法:

public long getTime()   返回一個時間毫秒數。

將Date對象轉換成long時間毫秒數。 用 getTime方法


public void setTime(long time)   設置此Date對象。


import java.util.Date;

/*
 * Date 類中的兩個方法;
 * 	public long getTime():返回一個時間毫秒數。
 * 		將Date對象轉換成long時間毫秒數。 用 getTime方法
 * 	public void setTime(long time):設置此Date對象。
 * */
public class Date類的方法 {
	public static void main(String[] args) {
		//創建日期對象
		Date a = new Date();
		
		//public long getTime(): 返回一個時間毫秒數
		long time = a.getTime();
		System.out.println("time:"+time);//1501307887401
		System.out.println("time:"+System.currentTimeMillis());//1501307887401
		//public static long currentTimeMillis()返回以毫秒爲單位的當前時間。
		
		//public void setTime(long time):設置此Date對象;
		a.setTime(System.currentTimeMillis());
		System.out.println(a);//Sat Jul 29 14:03:13 CST 2017
	
	}
}



3. Date類型和String類型互相轉換

中間橋樑:SimpleDateFormat
作用:
SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和規範化。
SimpleDateFormat類的使用:
構造方法:
public SimpleDateFormat()   用默認的模式和默認語言環境的日期格式符號構造 SimpleDateFormat
public SimpleDateFormat(String pattern)   創建格式化/解析器對象 提供一個參數:模式
時間和日期模式:


注意:
創建SimpleDateFormat對象,如果使用SimpleDateFormet中有參構造(pattern:模式必須和你給定的字符串模式一致),否則會 報錯 ava.text.ParseException;

public Date parse(String source)
throws ParseException
從給定字符串的開始解析文本,以生成一個日期。該方法不使用給定字符串的整個文本。
是DateFormat類的方法,在使用時要拋出異常ParseException。

a. Date日期對象——以字符串String表示

public final String format(Object obj)   格式化一個對象以生成一個字符串。、
是DateFormat類的方法,DateFormat 是抽象類,使用子類進行實例化SimpleDateFormat

b. String(日期的文本格式)——Date (日期對象)

public Object parseObject(String source)   解析字符串的文本,生成Date



/*
Date日期對象——以字符串String表示
	public final String format(Object obj)  格式化一個對象以生成一個字符串。、
		是DateFormat類的方法,DateFormat 是抽象類,使用子類進行實例化SimpleDateFormat
String(日期的文本格式)——>Date (日期對象)
	public Object parseObject(String source)   解析字符串的文本,生成Date
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date類型和String類型互相轉換 {
	public static void main(String[] args) throws ParseException {
		//Date ——> String
		//創建日期對象
		Date a = new Date();
		//創建SimpleDateFormat對象
		SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定模式。需要導包
		String b = s.format(a);
		System.out.println(b);//2017-07-29 14:40:02

		//String——>Date
		//定義一個日期字符串;
		String c = "2017-09-09";
		//創建SimpleDateFormat對象
		/*如果使用SimpleDateFormet中有參構造( pattern:模式必須和你給定的字符串模式一致)
		否則會 報錯 ava.text.ParseException;*/
		SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd");
		
		Date d = ss.parse(c);//此時要跑出一個異常!!!!!!!!!!!!!
		
		System.out.println(d);//Sat Sep 09 00:00:00 CST 2017		
	}
}


4. Date類的練習

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


//鍵盤錄入你的出生年月日,算一下你來到這個世界多少天?
public class Date類的練習 {
	public static void main(String[] args) throws ParseException {
		Scanner x = new Scanner(System.in);
		System.out.println("請輸入你的出生年月日:");
		//錄入數據
		String s = x.nextLine();
		//將字符串解析成日期對象。
		//使用SimpleDateFormat中的Parse()方法
		//創建SimpleDateFormat對象
		SimpleDateFormat a = new SimpleDateFormat("yyyy-MM-dd");
		Date d = a.parse(s);
		//通過日期得到一個毫秒值;
		long bftime = d.getTime();
		//獲取當前時間
		long nowtime= System.currentTimeMillis();
		long time = nowtime-bftime;
		long day = time/1000/60/60/24;
		System.out.println("你已經活了:"+day+"天");
		
		
	}
}


發佈了51 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章