Date---java.util 包提供了 Date 类来封装当前的日期和时间。
SimpleDateFormat---格式化时间
Calendar---日历类
Date
一、构造方法摘要
1.分配 Date
对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date date = new Date();
2.分配 Date
对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
Date date = new Date(1000);// 表示从标准基准时间(当前所在时区)往后过了1000毫秒
// 打印date 结果为 Thu Jan 01 08:00:01 HKT 1970
二、方法摘要
测试此日期是否在指定日期之后。
Date date = new Date();
Date date2 = new Date(1000);
boolean after = date.after(date2);
System.out.println(after);
// 输出结果为 true
测试此日期是否在指定日期之前。
Date date = new Date();
Date date2 = new Date(1000);
boolean before = date.before(date2);
System.out.println(before);
// 输出结果为 false
比较两个日期的顺序。如果参数 Date 等于此 Date,则返回值 0
;如果此 Date 在 Date 参数之前,则返回小于 0
的值;如果此 Date 在 Date 参数之后,则返回大于 0
的值。
Date date = new Date();
Date date2 = new Date(1000);
int i = date.compareTo(date2);
int i2 = date2.compareTo(date);
int i3 = date.compareTo(date);
// i:1 i2:-1 i3:0
比较两个日期的相等性。
Date date = new Date();
Date date2 = new Date(1000);
boolean bo = date.equals(date2);
boolean bo2 = date2.equals(date2);
// bo:true bo2:false
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
long time = date.getTime();
把Date对象转换成String类型
Date date = new Date();
String s = date.toString();
小题
Date date = new Date();
long time = date.getTime();
Date date2 = new Date(time);
boolean bo= date.equals(date2);
System.out.println(bo);
// bo是true还是false?
SimpleDateFormat
一、构造方法摘要
1.用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
。
SimpleDateFormat sdf = new SimpleDateFormat();
2.用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
字母 | 日期或时间元素 | 表示 | 示例 |
---|---|---|---|
G | Era 标志符 | Text | AD |
y | 年 | Year | 1996 ; 96 |
M | 年中的月份 | Month | July ; Jul ; 07 |
w | 年中的周数 | Number | 27 |
W | 月份中的周数 | Number | 2 |
D | 年中的天数 | Number | 189 |
d | 月份中的天数 | Number | 10 |
F | 月份中的星期 | Number | 2 |
E | 星期中的天数 | Text | Tuesday ; Tue |
a | Am/pm 标记 | Text | PM |
H | 一天中的小时数(0-23) | Number | 0 |
k | 一天中的小时数(1-24) | Number | 24 |
K | am/pm 中的小时数(0-11) | Number | 0 |
h | am/pm 中的小时数(1-12) | Number | 12 |
m | 小时中的分钟数 | Number | 30 |
s | 分钟中的秒数 | Number | 55 |
S | 毫秒数 | Number | 978 |
z | 时区 | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
二、方法摘要
将给定的 Date
格式化为日期/时间字符串,并将结果添加到给定的 String
。
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String time = sdf.format(date);
System.out.println(time);
// 输出结果为 2022-12-02 18-15-26
解析字符串的文本,生成 Date
。
String time = "2012-9-1 8-40-20";
Date date = sdf.parse(time);
System.out.println(date);
// 输出结果为 Sat Sep 01 08:40:20 HKT 2012
Calendar
Calendar 是一个抽象类, 无法通过直接实例化得到对象. 因此, Calendar 提供了一个方法 getInstance,来获得一个Calendar对象, 得到的 Calendar 由当前时间初始化.
Calendar cal = Calendar.getInstance();
获取当前年份
int year = cal.get(Calendar.YEAR);
获取当前月份
int month = cal.get(Calendar.MONTH+1);// 月份是从0-11 代表1-12月 所以想要获取当前月份需+1
获取当前月份中的第几天
int dayOfMouth = cal.get(Calendar.DAY_OF_MONTH);
获取当前年份中的第几天
int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
获得当前时区
TimeZone tz =cal.getTimeZone();
获取当前时间,以从历元至现在所经过的 UTC 毫秒数形式。
long timeInMillis = cal.getTimeInMillis();
Date小题为 true