## Java專題十:日期與時間
[TOC]
### 10.1.java.util.Date類
| 時間 | 說明 |
| --- | --- |
| year | y - 1900 |
| month | [0 - 11] |
| date (day of month) | [1 - 31] |
| hour | [0 - 23] |
| minute | [0 - 59] |
| second | [0 - 61] |
java.util.Date類中方法說明:
| 方法 | 說明 |
| --- | --- |
|public Date() | 構造當前時間的Date |
|public Date(long date) | 根據毫秒值構造Date |
|public long getTime() | 獲取從January 1, 1970, 00:00:00 GMT起算的毫秒數 |
|public int compareTo(Date anotherDate)| 比較2個Date的大小 |
### 10.2.java.util.Calendar類
| 方法 | 說明 |
| --- | --- |
|public static Calendar getInstance() | 構造當前時間的Calendar |
|public int get(int field) | 獲取字段,見代碼2-1|
|public void set(int field, int value)| 設置字段值|
|public final Date getTime() | Calendar轉換成Date對象 |
|public final void setTime(Date date)| Date轉換成Calendar對象 |
|public long getTimeInMillis()| 獲取毫秒數 |
|public void setTimeInMillis(long millis) | 設置毫秒數 |
|public void add(int field, int amount) | 自動重新計算日期,見代碼2-2 |
代碼2-1:
```
Calendar cal = Calendar.getInstance();
cal.get(Calendar.YEAR); // year
// JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY,
// AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, UNDECIMBER
cal.get(Calendar.MONTH) + 1; // month
cal.get(Calendar.DATE); // day
cal.get(Calendar.HOUR_OF_DAY); // hour
cal.get(Calendar.MINUTE); // minute
cal.get(Calendar.SECOND); // second
cal.get(Calendar.MILLISECOND); // millisecond
// AM = 0, PM = 1
cal.get(Calendar.AM_PM);
// MONDAY = 2, TUESDAY = 3, WEDNESDAY = 4, THURSDAY = 5,
// FRIDAY = 6, SATURDAY = 7, SUNDAY = 1
cal.get(Calendar.DAY_OF_WEEK);
```
代碼2-2:
```
Calendar cal = Calendar.getInstance();
df.format(cal.getTime()); // 2020-03-20
cal.add(Calendar.DATE, 13); // 重新計算
df.format(cal.getTime()); // 2020-04-02
```
### 10.3.java.text.SimpleDateFormat類
#### 10.3.1.format方法:將Date和毫秒數轉換成String類型
- String format(Date date)
- String format(milliseconds)
```
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.format(new Date());
df.format(System.currentTimeMillis());
df.format(Calendar.getInstance().getTime());
```
#### 10.3.2.parse方法:將String類型轉換成Date類型
- Date parse(String source) throws ParseException
```
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatTime = df.format(System.currentTimeMillis());
Date d = df.parse(formatTime);
```
- JavaCook
- Java專題零:類的繼承
- Java專題一:數據類型
- Java專題二:相等與比較
- Java專題三:集合
- Java專題四:異常
- Java專題五:遍歷與迭代
- Java專題六:運算符
- Java專題七:正則表達式
- Java專題八:泛型
- Java專題九:反射
- Java專題九(1):反射
- Java專題九(2):動態代理
- Java專題十:日期與時間
- Java專題十一:IO與NIO
- Java專題十一(1):IO
- Java專題十一(2):NIO
- Java專題十二:網絡
- Java專題十三:并發編程
- Java專題十三(1):線程與線程池
- Java專題十三(2):線程安全與同步
- Java專題十三(3):內存模型、volatile、ThreadLocal
- Java專題十四:JDBC
- Java專題十五:日志
- Java專題十六:定時任務
- Java專題十七:JavaMail
- Java專題十八:注解
- Java專題十九:淺拷貝與深拷貝
- Java專題二十:設計模式
- Java專題二十一:序列化與反序列化
- 附加專題一:MySQL
- MySQL專題零:簡介
- MySQL專題一:安裝與連接
- MySQL專題二:DDL與DML語法
- MySQL專題三:工作原理
- MySQL專題四:InnoDB存儲引擎
- MySQL專題五:sql優化
- MySQL專題六:數據類型
- 附加專題二:Mybatis
- Mybatis專題零:簡介
- Mybatis專題一:配置文件
- Mybatis專題二:映射文件
- Mybatis專題三:動態SQL
- Mybatis專題四:源碼解析
- 附加專題三:Web編程
- Web專題零:HTTP協議
- Web專題一:Servlet
- Web專題二:Cookie與Session
- 附加專題四:Redis
- Redis專題一:數據類型
- Redis專題二:事務
- Redis專題三:key的過期
- Redis專題四:消息隊列
- Redis專題五:持久化