一.1.Date概念
Date表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。
2.Date类的方法及其构造方法
Date date = new Date(); //创建日期对象
System.out.println(date);//Sun Aug 08 12:23:03 CST 2088 输出的是当前日期
Date date = new Date(0L);//0L是一个参数 是一个long的数值 计算 时间远点到 到这个数据值的时间。
System.out.println(date);// Thu Jan 01 08:00:00 CST 1970
date = new Date(3742767540068L);
System.out.println(date);// Sun Aug 08 09:39:00 CST 2088 表述时间原点经过3742767540068L 毫秒
Date date = new Date();
long time = date.getTime(); // 获取时间原点到当前日期的毫秒数
System.out.println(time);//3742777636267
二、1.SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
字母 | 日期或时间元素 | 表示 | 示例 |
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 | Pacfic Standard Time;PST;GMT-08:00 |
Z | 时区 | RFC 822 time zone | -0800 |
常用的模式字母及对应关系:
y -- 年 M -- 月 d -- 日 H -- 时 m -- 分 s -- 秒
2、SimpleDateFormat的构造方法
方法名 | 说明 |
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat使用给定的模式和默认的日期格式 |
public SimpleDateFormat() | 构造一个SimpleDateFormat,使用默认模式和日期格式 |
Date d = new Date();//获取当前系统的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
三.Calendar类概述
Calendar是日历类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar类的属性有很多,比如:
YEAR 年
MONTH 月(注意:从0开始算起,最大11;0代表1月,11代表12月)
DATE 天
HOUR 时
MINUTE分
SECOND秒
Calendar calendar=Calendar.getInstance(); //通过getInstance方法获取Calendar的引用;
calendar.setTime(new Date());
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//获取设置后的那天是当星期中的第几天