一、Date
- Date類表示特定的時刻,精度為毫秒
- Date的兩個附加功能:Calendar、DateFormat
Calendar類應該用于在日期和時間字段之間進行轉換
DateFormat類應該用于格式化和解析日期字符串
不推薦使用Date中的相應方法
1.1 構造方法
1.1.1 Date()
分配時間,根據當前的默認毫秒值創建日期對象
1
2
|
Date d = new Date(); System.out.println(d); //當前時間:Tue Jun 15 13:44:44 CST 2021 |
1.1.2 Date(long date)
從1970.1.1 8:00:00開始,根據給定的毫秒值創建日期對象
1
2
|
Date d = new Date( 1000 * 60 * 60 * 24 ); System.out.println(d); //Fri Jan 02 08:00:00 CST 1970 |
1.2 常用方法
Modifier and Type | Method | Description |
---|---|---|
long | getTime() | 返回表示的1970年1月1日00:00:00 GMT以來的毫秒數 |
void | setTime?(long time) | 設置時間,設置為1970年1月1日00:00:00之后的 time毫秒的時間點 |
String | toString() | 將此 Date對象轉換成String形式 |
1
2
3
4
5
6
7
8
|
Date d = new Date(); System.out.println(d); //Tue Jun 15 13:53:39 CST 2021 System.out.println(d.getTime()) //獲取當前時間的毫秒數:1623736419381 System.out.println(d.toString()); //Tue Jun 15 13:53:39 CST 2021 d.setTime( 24 * 60 * 60 * 1000 ); //設置時間 System.out.println(d.getTime()); //86400000 System.out.println(d); //Fri Jan 02 08:00:00 CST 1970 System.out.println(d.toString()); //Fri Jan 02 08:00:00 CST 1970 |
1.3 其他方法
Modifier and Type | Method | Description |
---|---|---|
int | hashCode() | 返回此對象的哈希碼值。 |
boolean | after?(Date when) | 測試此日期是否在指定日期之后。 |
boolean | before?(Date when) | 測試此日期是否在指定日期之前。 |
Object | clone() | 返回此對象的副本。 |
int | compareTo?(Date anotherDate) | 比較兩個日期的訂購。 |
boolean | equals?(Object obj) | 比較兩個相等的日期。 |
static | Date from?(Instant instant) | 從 Instant對象獲得 Date的實例。 |
二、Calendar(抽象)
日歷類,提供操作日歷字段的方法
2.1 獲取時間 get()
1
2
3
4
5
6
7
8
|
Calendar d = Calendar.getInstance(); System.out.println( "獲取當前時間:" ); System.out.println( "年:" +d.get(d.YEAR)); System.out.println( "月:" +(d.get(d.MONTH)+ 1 )); //月從0開始,所以要+1 System.out.println( "日:" +d.get(d.DAY_OF_MONTH)); System.out.println( "時:" +d.get(d.HOUR_OF_DAY)); System.out.println( "分:" +d.get(d.MINUTE)); System.out.println( "秒:" +d.get(d.SECOND)); |
1
2
3
4
5
6
7
|
獲取當前時間: 年:2021 月:6 日:15 時:14 分:25 秒:32 |
2.2 設置時間
- set()
1
2
3
4
5
6
7
8
9
10
11
12
13
|
System.out.println( "設置當前時間:" ); Calendar d = Calendar.getInstance(); //單獨設置 d.set(d.YEAR, 2000 ); System.out.println( "年:" +d.get(d.YEAR)); //一起設置,d.set(year, month, date, hourOfDay, minute, second); d.set( 2000 , 1 , 1 , 23 , 59 , 59 ); System.out.println( "年:" +d.get(d.YEAR)); System.out.println( "月:" +d.get(d.MONTH)); System.out.println( "日:" +d.get(d.DAY_OF_MONTH)); System.out.println( "時:" +d.get(d.HOUR_OF_DAY)); System.out.println( "分:" +d.get(d.MINUTE)); System.out.println( "秒:" +d.get(d.SECOND)); |
1
2
3
4
5
6
7
8
|
設置當前時間: 年: 2000 年: 2000 月: 1 日: 1 時: 23 分: 59 秒: 59 |
2.3 時間計算
- add()
1
2
3
4
5
6
7
|
Calendar d = Calendar.getInstance(); d.set( 2000 , 0 , 31 , 23 , 59 , 59 ); System.out.println(d.getTime()); d.add(d.YEAR, 10 ); //增加十年 System.out.println( "year+10:" +d.getTime()); d.add(d.MONTH, 1 ); //增加一個月 System.out.println( "month+1:" +d.getTime()); |
1
2
3
|
Mon Jan 31 23:59:59 CST 2000 year+10:Sun Jan 31 23:59:59 CST 2010 month+1:Sun Feb 28 23:59:59 CST 2010 |
2.4 其它方法
Modifier and Type | Method | Description |
---|---|---|
int | getActualMaximum?(int field) | 給定此 Calendar的時間值,返回指定日歷字段可能具有的 Calendar |
int | getActualMinimum?(int field) | 給定此 Calendar的時間值,返回指定日歷字段可能具有的 Calendar |
String | getCalendarType() | 返回此 Calendar的日歷類型 |
int | getFirstDayOfWeek() | 得到一周的第一天是什么 |
static Calendar | getInstance() | 使用默認時區和區域設置獲取日歷 |
static Calendar | getInstance?(Locale aLocale) | 使用默認時區和指定的區域設置獲取日歷 |
static Calendar | getInstance?(TimeZone zone) | 使用指定的時區和默認語言環境獲取日歷 |
static Calendar | getInstance?(TimeZone zone, Locale aLocale) | 獲取具有指定時區和區域設置的日歷 |
TimeZone | getTimeZone() | 獲取時區。 |
三、DateFormat(抽象)
格式化和解析日期字符串(將Date創建轉化為日常格式)
3.1 構造方法
設置格式
1
2
3
4
5
|
//y:年 M:月 d:日 H:時 m:分 s:秒 SimpleDateFormat format = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm:ss" ); String text1 = format.format( new Date()); //將date轉換成已經設置格式的字符串 System.out.println(text1); System.out.println(format.parse( "2021年6月10日 10:10:10" )); //將日期字符串轉換為Date對象 |
1
2
|
2021年06月15日 15:00:10 Thu Jun 10 10:10:10 CST 2021 |
面試題通常會問道時間計算:輸入→parse→date對象→gettime()→相減得毫秒→換算
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/m0_50609545/article/details/117917488