Java7 日期时间 API
// date1 是否 date2 之后
System.out.println(date1.after(date2));
// date1 和 date2 是否相等
System.out.println(date1.equals(date2));
// 返回自 1970 年 1 月 1 日以来经过的毫秒数
System.out.println(date2.getTime());
}
输出结果
Sat Dec 05 12:49:59 CST 2020
Sat Dec 05 17:39:23 CST 2020
false
false
1607161163418
[](()SimpleDateFormat
DateFormat 是抽象类,能够快速地进行日期与时间的格式化输出和字符串解析,它与以语言无关的方式格式化并解析日期或时间,所以使用其子类 SimpleDateFormat 实现日期和字符串的相互转换。
[](()使用 SimpleDateFormat 测试日期和字符串的相互转换
/**
使用 SimpleDateFormat 测试日期和字符串的相互转换
@throws ParseException
*/
@Test
public void testSimpleDateFormat() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyy 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 y-MM-dd HH:mm:ss");
// 将字符串转化为日期
Date date = sdf.parse("2020-12-05 16:31:39");
System.out.println(date);
// 将日期转化为字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = dateFormat.format(date);
System.out.println(str);
}
输出结果
Sat Dec 05 16:31:39 CST 2020
2020/12/05 16:31:39
[](()DateFormat 格式代码
要指定时间格式,请使用时间模式字符串。 在此模式中,所有 ASCII 字母都保留为模式字母,其定义如下
| 编号 | 字符 | 描述 | 示例 |
| --- | --- | --- | --- |
| 1 | G | 时代指示符 | AD |
| 2 | y | 四位数的年份值 | 2019 |
| 3 | M | 月份 | July or 07 |
| 4 | d | 日 | 10 |
| 5 | h | 小时 A.M./P.M. (1~12) | 12 |
| 6 | H | 24 小时制的小时表示 (0~23) | 22 |
| 7 | m | 分钟 | 30 |
| 8 | s | 秒钟 | 55 |
| 9 | S | 毫秒 Java 开源项目【ali1024.coding.net/public/P7/Java/git】 | 234 |
| 10 | E | 星期几 | Tuesday |
| 11 | D | 一年中的第几天 | 360 |
| 12 | F | 一个月中的某一天 | 2 (second Wed. in July) |
| 13 | w | 一年中的第几个星期 | 40 |
| 14 | W | 一月中的第几个星期 | 1 |
| 15 | a | A.M./P.M. 标记 | PM |
| 16 | k | 小时 (1~24) | 24 |
| 17 | K | 小时 A.M./P.M. (0~11) | 10 |
| 18 | z | 时区 | Eastern Standard Time |
| 19 | ‘ | 转义文本 | Delimiter |
| 20 | " | 单引号 | ` |
[](()Calendar
相比较于 java.util.Date
,java.util.Calendar
除了承载毫秒级的 Unix 时间,还承载了时区信息(默认使用系统的时区),并且,提供了诸多接口:“年、月、日、时、分、秒” 字段的获取与设置,时区设置,日期与时间的偏移调整。
从 JDK1.1 版本开始,在处理日期和时间时,系统推荐使用 Calendar 类进行实现。在设计上,Calendar 类的功能要比 Date 类强大很多,而且在实现方式上也比 Date 类要复杂一些
Calendar 类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用 getInstance 方法创建即可。
[](()创建一个代表系统当前日期的 Calendar 对象
// 默认是当前日期
Calendar c = Calendar.getInstance();
[](()创建一个指定日期的 Calendar 对象
使用 Calendar 类代表特定的时间,需要首先创建一个 Calendar 的对象,然后再设定该对象中的年月日参数来完成。
// 创建一个代表 2020 年 6 月 12 日的 Calendar 对象
Calendar c1 = Calendar.getInstance();
c1.set(2020, 6 - 1, 12);
[](()Calendar 类对象字段类型
Calendar 类中用以下这些常量表示不同的意义,jdk 内的很多类其实都是采用的这种思想
| 序号 | 常量 | 描述 |
| --- | :-- | :-- |
| 1 | Calendar.YEAR | 年份 |
| 2 | Calendar.MONTH | 月份 |
| 3 | Calendar.DATE | 日期 |
| 4 | Calendar.DAY_OF_MONTH | 日期,和上面的字段意义完全相同 |
| 5 | Calendar.HOUR | 12 小时制的小时 |
| 6 | Calendar.HOUR_OF_DAY | 24 小时制的小时 |
| 7 | Calendar.MINUTE | 分钟 |
| 8 | Calendar.SECOND | 秒 |
| 9 | Calendar.DAY_OF_WEEK | 星期几 |
[](()Calendar 类对象信息的设置
set 设置
Calendar c1 = Calendar.getInstance();
// 把 Calendar 对象 c1 的年月日分别设这为:2020、6、12
public final void set(int year,int month,int date)
c1.set(2020, 6-1, 12);
add 设置
把 c1 对象的日期加上 10,也就是 c1 也就表示为 10 天后的日期,其它所有的数值会被重新计算
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DATE, 10);
其他字段属性的 add 的意义以此类推
[](()测试 Calendar 类对象信息的获得,创建一个指定日期的 Calendar 对象
测试 Calendar 类对象信息的获得,创建一个指定日期的 Calendar 对象
/**
测试 Calendar 类对象信息的获得,创建一个指定日期的 Calendar 对象
*/
@Test
public void testCalendar() {
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与 Date 类是不同的):1 代表星期日、2 代表星期 1、3 代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
System.out.println("星期" + day + " " + year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second);
// 创建一个指定日期的 Calendar 对象
Calendar c2 = Calendar.getInstance();
c2.set(2020, (12 - 1), 5);
System.out.println(c2.get(Calendar.YEAR) + "年" + (c2.get(Calendar.MONTH) + 1) + "月" + c2.get(Calendar.DATE) + "日");
}
输出结果
星期 7 2020-12-5 17:42:47
2020 年 12 月 5 日
[](()GregorianCalendar
GregorianCalendar 是 Calendar 类的子类,并提供世界上大多数国家/地区使用的标准日历系统。GregorianCalendar 定义了两个字段:AD 和 BC。这是代表公历定义的两个时代。
[](()构造函数与常用方法
下面列出 GregorianCalendar 对象的几个构造方法:
| 序号 | 构造函数 | 说明 |
最后
经过日积月累, 以下是小编归纳整理的深入了解 Java 虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
评论