JAVA之常見類(二)
阿新 • • 發佈:2018-12-15
JAVA之常見類(二)
六、Date類
1.概述
類 Date
表示特定的瞬間,精確到毫秒。
2.構造方法
Date()
分配Date
物件並初始化此物件,以表示分配它的時間(精確到毫秒)。
Date(long date)
分配Date
物件並初始化此物件,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。
3.常用方法
long
getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 物件表示的毫秒數。
void
setTime
(long time)
設定此Date
物件,以表示 1970 年 1 月 1 日 00:00:00 GMT 以後time
毫秒的時間點。
七、SimpleDateFormat類
1.概述
父類DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。
SimpleDateFormat
是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文字)、解析(文字 -> 日期)和規範化。
2.構造方法
SimpleDateFormat()
用預設的模式和預設語言環境的日期格式符號構造SimpleDateFormat
。SimpleDateFormat(String pattern)
用給定的模式和預設語言環境的日期格式符號構造SimpleDateFormat
。
3.常用方法
String
format(Date date)
將一個 Date 格式化為日期/時間字串。
Date
parse(String source)
從給定字串的開始解析文字,以生成一個日期。
4.案例
y
年 Year 1996
;96
M
年中的月份 Month July
;Jul
;07
D
年中的天數 Number 189
d
月份中的天數 Number 10
H
一天中的小時數(0-23) Number 0
m
小時中的分鐘數 Number 30
s
分鐘中的秒數 Number 55
Date d = new Date(); //獲取當前時間物件
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//建立日期格式化類物件
System.out.println(sdf.format(d)); //將日期物件轉換為字串
//2018/12/01 19:58:38
String str = "2000年08月08日 08:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = sdf.parse(str); //將時間字串轉換成日期物件
System.out.println(d);
//Tue Aug 08 08:08:08 CST 2000
需求:算一下你來到這個世界多少天?
//1,將生日字串和今天字串存在String型別的變數中
String birthday = "1983年07月08日";
String today = "2088年6月6日";
//2,定義日期格式化物件
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
//3,將日期字串轉換成日期物件
Date d1 = sdf.parse(birthday);
Date d2 = sdf.parse(today);
//4,通過日期物件後期時間毫秒值
long time = d2.getTime() - d1.getTime();
//5,將兩個時間毫秒值相減除以1000,再除以60,再除以60,再除以24得到天
System.out.println(time / 1000 / 60 / 60 / 24 );
//38320
八、Calendar類
1.概述
Calendar
類是一個抽象類,它為特定瞬間與一組諸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日曆欄位
之間的轉換提供了一些方法,併為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。
2.常用方法
static Calendar
getInstance()
使用預設時區和語言環境獲得一個日曆。
int
get(int field)
返回給定日曆欄位的值。
abstract void
add(int field, int amount)
根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量。
void
set(int year, int month, int date)
設定日曆欄位YEAR
、MONTH
和DAY_OF_MONTH
的值。
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
//System.out.println(c); //證明重寫了toString方法列印了物件中所有的屬性
System.out.println(c.get(Calendar.YEAR)); //通過欄位獲取對應的值
System.out.println(c.get(Calendar.MONTH));
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
//System.out.println(c);
System.out.println(c.get(Calendar.YEAR)); //通過欄位獲取年
System.out.println(c.get(Calendar.MONTH)); //通過欄位後期月,但是月是從0開始編號的
System.out.println(c.get(Calendar.DAY_OF_MONTH)); //月中的第幾天
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //週日是第一天,週六是最後一天
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
/*2018
*11
*1
*7
2018年12月01日星期六
*/
//如果是個數數字前面補0
public static String getNum(int num) {
return num > 9 ? "" + num : "0" + num;
}
//將星期儲存表中進行查表
public static String getWeek(int week) {
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
注意:
1.月份從0開始計數
2.週日為第一天,週六為最後一天即第七天
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
c.set(1998, 7, 9);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
//1998年07月09日星期四
3.案例
需求:鍵盤錄入任意一個年份,判斷該年是閏年還是平年
Scanner sc = new Scanner(System.in);
System.out.println("請輸入年份,判斷該年份是閏年還是平年:");
String line = sc.nextLine(); //錄入數字字串
int year = Integer.parseInt(line); //將數字字串轉換成數字
boolean b = getYear(year);
System.out.println(b);
private static boolean getYear(int year) {
//2,建立Calendar c = Calendar.getInstance();
Calendar c = Calendar.getInstance();
//設定為那一年的3月1日
c.set(year, 2, 1);
//將日向前減去1
c.add(Calendar.DAY_OF_MONTH, -1);
//判斷是否是29天
return c.get(Calendar.DAY_OF_MONTH) == 29;
}