第1節 常用類庫(下)
六、java.util.Date
Date
類表示特定的時刻,精度為毫秒。
在JDK 1.1之前,
Date
類還有兩個附加功能。 它允許将日期解釋為年,月,日,小時,分鐘和秒值。 它還允許格式化和解析日期字元串。 不幸的是,這些功能的API不适合國際化。 從JDK 1.1開始,
Calendar
類應該用于在日期和時間字段之間進行轉換 ,而
DateFormat
類應該用于格式化和解析日期字元串 。 不推薦使用
Date
中的相應方法。
是以
Date
類主要就是表示特定時刻的對象,不具備太多功能。
6.1 構造方法
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnLycTMjFGN1U2MldDZ0MmZ5ATYmRzMmFDNzUTNiJmNjV2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其他的構造方法都已經過時,不用了。
package com.kaikeba.coreclasslibrary.date;
import java.util.Date;
/**
* 日期和時間:Date
*/
public class Demo {
public static void main(String[] args) {
//建立一個目前時間的Date
Date date = new Date();
System.out.println(date);
}
}
結果:
Tue Sep 07 21:44:24 CST 2021
println
方法調用了
toString
方法,
Date
的
toString
方法也已經被重寫了,格式就如上所示。
6.2 方法摘要
最常用的三個方法:
用于擷取和設定時間。
可以通過運算來獲得一個新的時間。
package com.kaikeba.coreclasslibrary.date;
import java.util.Date;
/**
* 日期和時間:Date
*/
public class Demo {
public static void main(String[] args) {
//建立一個目前時間的Date
Date date = new Date();
long time = date.getTime() - (24*60*60*1000);
Date date2 = new Date(time);
System.out.println(date);
System.out.println(date2);
}
}
結果:
Tue Sep 07 21:54:40 CST 2021
Mon Sep 06 21:54:40 CST 2021
七、java.text.DateFormat
DateFormat
是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化和分析日期或時間。
日期/時間格式化子類(例如
SimpleDateFormat
)允許格式化(即,日期→文本),解析(文本“日期”)和規範化。 日期表示為
Date
對象或自1970年1月1日00:00:00 GMT以來的毫秒數。
直接子類:
SimpleDateFormat
SimpleDateFormat
是一個用于以區域設定敏感的方式格式化和解析日期的具體類。 它允許格式化(日期→文本),解析(文本→日期)和規範化。
SimpleDateFormat
允許您從為日期時間格式選擇任何使用者定義的模式開始。
7.1 日期和時間模式
例子:
7.2 構造方法
比較常用的是指定字元串模式的,例子如下:
package com.kaikeba.coreclasslibrary.dateformat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo {
public static void main(String[] args) throws ParseException {
//DateFormat
/**
* y : 年
* M : 月
* d : 日
* H : 時
* m : 分
* s : 秒
*
* 2020年12月12日 12:12:50
*/
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
}
}
7.3 方法摘要
常用的有兩個:
1、
format
方法:将
Date
對象格式化為建構時指定的格式。
String text = format.format(new Date());
System.out.println(text);
結果:
2021年09月07日 22:09:15
2、
parse
方法:将滿足指定時的格式轉換為
Date
對象。
Date date = format.parse("2021年12月12日 12:12:13");
System.out.println(new Date().getTime() - date.getTime());
結果:
-8258577410
八、java.util.Calendar
所述
Calendar
類是一個抽象類,可以為在某一特定時刻和一組之間的轉換的方法
calendar fields
如
YEAR
,
MONTH
,
DAY_OF_MONTH
,
HOUR
,等等,以及用于操縱該月曆字段,如擷取的日期下個星期。 瞬間可以用毫秒值表示,該值是1970年1月1日格林威治标準時間1970年1月1日00:00:00,000(格裡高利)的_Epoch_的偏移量。
8.1 建立對象
Calendar
類對象的建立比較特殊,使用
getInstance
方法,如下所示:
8.2 常用方法
所有的方法很多,這裡介紹幾個常用的:
1、
get
方法:
Calendar
類中有很多關于年月日、星期等等的字段,可以直接擷取:
int year = c1.get(Calendar.YEAR);
int day = c1.get(Calendar.DAY_OF_YEAR);
System.out.println(year);
System.out.println(day);
結果如下:
2021
250
2、
set
方法:
c1.set(Calendar.YEAR, 3000);
System.out.println(c1.get(Calendar.YEAR));
結果:
3000
3、
add
方法:
c1.add(Calendar.YEAR, 1);
System.out.println(c1.get(Calendar.YEAR));
結果如下:
2022
4、
getTime
方法:
Date d = c1.getTime();
System.out.println(d);
結果如下:
Wed Sep 07 22:29:11 CST 2022
5、
getActualMaxmum
方法:
擷取某字段的最大最小值,例子如下:
int m = c1.getActualMaximum(Calendar.MONTH);
System.out.println(m);
結果如下:
11 // 注意月份是0-11
九、java.lang.System
System
類包含幾個有用的類字段和方法。 它無法執行個體化。
System
類提供的設施包括标準輸入,标準輸出和錯誤輸出流 ; 通路外部定義的屬性和環境變量; 加載檔案和庫的方法; 以及用于快速複制陣列的一部分的實用方法。
目前看着可能會用到的:
arraycopy
、
gc
、
exit
等等。