java常用類:Date/Calendar/SimpleDateFormat
阿新 • • 發佈:2020-12-27
Date
-
Date表示特定的瞬間,精確到毫秒。Date類中的大部分方法都已經被Calendar類中的方法取代
-
時間單位:
1秒=1000毫秒
1毫秒=1000微秒
1微秒=1000納秒
import java.util.Date; public class Demo01 { public static void main(String[] args) { // 1 建立Date物件 Date date1 = new Date(); System.out.println(date1.toString()); System.out.println(date1.toLocaleString());//過時了 // 建立昨天的 Date date2 = new Date(date1.getTime() - (60*60*24*1000)); System.out.println(date2.toLocaleString()); // 2 方法after before boolean b1 = date1.after(date2); System.out.println(b1); boolean b2 = date1.before(date2); System.out.println(b2); // 比較compareTo(); int d = date1.compareTo(date2); System.out.println(d); // 比較是否相等 equals() boolean b3 = date1.equals(date2); System.out.println(b3); } } //結果: //Sat Dec 26 21:48:30 GMT+08:00 2020 //2020-12-26 21:48:30 //2020-12-25 21:48:30 //true //false //1 //false
Calendar
-
Calendar提供了獲取或設定各種日曆欄位的方法
-
構造方法
protected Calendar():由於修飾符是protected,所以無法直接建立該物件
-
其他方法
方法名 | 說明 |
---|---|
static Calendar getInstance() | 使用預設時區和區域獲取日曆 |
void set(int year, int month, int date, int hourofday, int minute, int second) | 設定日曆的年、月、日、時、分、秒 |
int get(int field) | 返回給定日曆欄位的值。欄位比如年、月、日 |
void setTime(Date date) | 用給定的date設定此日曆時間 |
Date getTime() | 返回一個date表示此日曆的時間 |
void add(int field, int amount) | 按照日曆的規則,給指定欄位新增或減少時間量 |
long getTimeInMilles() | 毫秒為單位返回該日曆的時間值 |
public class Demo01 { public static void main(String[] args) { //1.建立Calendar物件 Calendar calender=Calendar.getInstance(); System.out.println(calender.getTime().toLocaleString()); System.out.println(calender.getTimeInMillis()); //2獲取時間資訊 int year=calender.get(Calendar.YEAR); //月是從0到11 int month=calender.get(Calendar.MONTH); int day=calender.get(Calendar.DAY_OF_MONTH);//Date int hour=calender.get(Calendar.HOUR_OF_DAY);//Hour 12小時 int minute=calender.get(Calendar.MINUTE); int second=calender.get(Calendar.SECOND); System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second); //3修改時間 Calendar calendar2=Calendar.getInstance(); System.out.println(calendar2.getTime().toLocaleString()); calendar2.set(Calendar.DAY_OF_MONTH,5);//修改day System.out.println(calendar2.getTime().toLocaleString()); //4使用add方法修改時間 calendar2.add(Calendar.HOUR,1); System.out.println(calendar2.getTime().toLocaleString()); //5 獲取當前時間的最大值或者最小值 System.out.println(calendar2.getActualMaximum(Calendar.DAY_OF_MONTH));//最大值 } } //結果: //2020-12-27 10:23:03 //1609035783235 //2020年12月27日10:23:3 //2020-12-27 10:23:03 //2020-12-5 10:23:03 //2020-12-5 11:23:03 //31
SimpleDateFormat
-
SimpleDateFormat是一個以與語言環境有關的方式來格式化和解析日期的具體類
-
進行格式化(日期-->文字)、解析(文字-->日期)
-
常用的時間模式字母
字母 日期或時間 示例 y 年 2019 M 年中月份 08 d 月中天數 10 H 一天中小時(0-23) 22 m 分鐘 16 s 秒 59 S 毫秒 367
public class Demo01 {
public static void main(String[] args) throws Exception{
//1.建立SimpleDateFormat物件
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//字串引數就是日期的模式
//2建立Date
Date date=new Date();
//格式化date 把date轉成字串
String str=sdf.format(date);
System.out.println(str);
//解析 把字串轉成date
Date date2 = sdf.parse("2020/05/01 12:22:00");
System.out.println(date2);
}
}
//結果:
//2020/12/27 10:40:15
//Fri May 01 12:22:00 GMT+08:00 2020