>[success] # Calender
1. java.util.Calender類主要用于描述特定的瞬間,取代Date類中的過時方法實現全球化,通過案例來看為Date 被取代
~~~
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
// 指定年月日生成時間 -- 此方法以過時
Date d1 = new Date(2022, 8, 8, 8, 8);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(d1);
System.out.println(format); // 3922-09-08 08:08:00
// 想打印真正的 2022-08-08 08:08:00 需要年減低掉1900 月剪掉1
d1 = new Date(2022 - 1900, 8 - 1, 8, 8, 8);
format = sdf.format(d1);
System.out.println(format); // 2022-08-08 08:08:00
}
}
~~~
2. 該類是個**抽象類**,因此不能**實例化對象**,其具體子類針對不同國家的日歷系統
>[info] ## 常用的方法
|方法聲明 |功能介紹|
| -- | -- |
|static Calendar getInstance()| 用于獲取Calendar類型的引用|
|void set(int year, int month, int date, int hourOfDay, int minute, int second) |用于設置年月日時分秒信息|
|Date getTime()|用于將Calendar類型轉換為Date類型|
|void set(int field, int value)| 設置指定字段的數值|
|void add(int field, int amount) |向指定字段增加數值|
~~~
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
// 抽象類不能直接new 創建對象
Calendar instance = Calendar.getInstance();
// 指定年月日是分秒
instance.set(2022, 8 - 1, 8, 8, 8, 8);
// 將Calendar 轉換為 Date 格式
Date date = instance.getTime();
// 打印
SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sft.format(date);
System.out.println(format); // 2022-08-08 08:08:08
// -----------------------------------------------
// 想設置當前對象指定 年月日時分秒 通過set 方法
instance.set(Calendar.YEAR, 2023);
// 將Calendar 轉換為 Date 格式
date = instance.getTime();
// 打印
format = sft.format(date);
System.out.println(format); // 2023-08-08 08:08:08
// -----------------------------------------
// 設置年月日時分秒的增加
instance.add(Calendar.MONTH, 5);
// 將Calendar 轉換為 Date 格式
date = instance.getTime();
// 打印
format = sft.format(date);
System.out.println(format); // 2024-01-08 08:08:08
}
}
~~~
>[danger] ##### 問答
1. 既然Calendar是個抽象類不能創建對象,那么下面的方法為啥可以獲取Calendar類型的引用呢
~~~
由源碼可知,返回的并不是Calendar類型的對象,而是Calendar類的子類GregorianCalendar等對象,形成了多態
Calender getInstance(){
return new GregorianCalendar(zone, aLocale);
}
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法