Java常用類:時間類(Date、Calendar、SimpleDateFormat)
阿新 • • 發佈:2022-03-28
Date
- Date表示特定的瞬間,精確到毫秒,大部分方法已經唄Calendar類中的方法取代
- 1s=1000ms=1_000_000nm
方法
- 建立物件,顯示時間
//今天
Date date = new Date();
System.out.println(date.toString());
System.out.println(date.toLocaleString());
//昨天,今天減去一天的毫秒數
Date date1 = new Date(date.getTime()-60*60*24*1000);
System.out.println(date1.toLocaleString());
- after,before
今天的時間是否在昨天之後
boolean b1 = date.after(date1);
System.out.println(b1);
boolean b2 = date.before(date1);
- compareTo:比較大小,正數大,負數小,0相等
int i = date.compareTo(date1);
System.out.println(i);
- equals
Calendar
Calendar提供了獲取或設定各種日曆欄位的方法
Calendar的修飾符是protected,無法直接創造物件
方法
- getInstance():使用預設時區和區域獲取日曆
- set():設定年月日
- get(): 返回給定日曆欄位的值(年月日)
- setTime(Date date):用Date設定該日曆的時間,Date -> Calendar
- getTime():返回一個Date表示此日曆的時間,Calendar -> Date
- add():時間的增加和減少
- getTimeInMillies():獲取從1970至今的毫秒值
- getActualMaximum():獲取月的最大天數
- getActualMinimum():獲取月的最小天數
//1. 建立Calendar物件 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime().toLocaleString()); System.out.println(calendar.getTimeInMillis()); //2. 獲取時間資訊 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH);//從0-11 int day = calendar.get(Calendar.DATE);//DAY_OF_MONTH,作用相同 int hour = calendar.get(Calendar.HOUR_OF_DAY);//HOUR:12小時制,HOUR_OF_DAY:24小時制 int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.println(year+"年"+(month+1)+"月"+day+"日 "+hour+":"+minute+":"+second); //修改時間 Calendar calendar2 = Calendar.getInstance(); calendar2.set(Calendar.DAY_OF_MONTH,22); System.out.println(calendar2.getTime().toLocaleString()); //4. add方法修改世家 calendar2.add(Calendar.HOUR,-1);//減去一小時 System.out.println(calendar2.getTime().toLocaleString()); //用於獲取月的最大最小天數 int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH); int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH); System.out.println(max); System.out.println(min);
SimpleDateFormat
- SImpleDateFormat是用於格式化和解析日期的類
- 格式化:日期 -> 文字
- 解析:文字 -> 日期
- 常用時間模式字母
字母 | 日期或時間 |
---|---|
y | 年 |
M | 年中月份 |
d | 月中天數 |
H | 小時數(0-23) |
m | 分鐘 |
s | 秒(小寫s) |
S | 毫秒(大寫S) |
方法
- 格式化
//1. 建立SimplyDateFormat物件,y年M月
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2. 建立Date
Date date = new Date();
//3. 格式化date,日期 -> 字串
String str = sdf.format(date);
System.out.println(str);
//2022年03月28日 10:14:10
- 解析
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
Date date2 = sdf2.parse("1990/05/01");//需要符合建立物件時的型別,才能進行解析
System.out.println(date2);
//Tue May 01 00:00:00 CDT 1990