## 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专题五:持久化