[javaSE笔记7]Date, DateFormat, Calendar类
Date类
java.util.Date
Date表示特定的时间, 精确到毫秒
时间原点 ( 0m ) : 1970年1月1日 00:00
构造方法
空参构造方法 : 获取当前系统的日期和时间
Date date = new Date();
带参数构造方法 :
Date ( long date ) : 传递毫秒值, 把毫秒值转换为日期
Date date = new Date(0);
System.out.println(date);
// 输出Thu Jan 01 08:00:00 CST 1970
成员方法
getTime()
把日期转换为毫秒
DateFormat类
java.text.DateFormat类是日期/时间格式化子类的抽象类
可以完成日期和文本之间的转换
构造和成员方法
String format(Date date)
: 按照指定的模式把Date日期格式化为符合模式的字符串
Date parse(String source)
: 把符合模式的字符串解析为Date日期
DateFormat类是一个抽象类, 无法直接创建对象使用, 可以使用DateFormat的子类 : java.text.SimpleDateFormat
SimpleDateFormat的构造方法 :
SimpleDateFormat(String pattern)
: 用指定的模式和默认语言环境的日期格式符号构造SimpleDateFormat
常用的格式规则 :
字母 | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
SimpleDateFormat的format和parse方法
format :
- 创建SimpleDateFormat对象并在构造方法中传递指定的模式
- 使用format方法把Date转换为符合模式的字符串
e.g.
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
System.out.println(format);
// 输出 : 2020-06-25 08:34:48
parse :
- 创建SimpleDateFormat对象并在构造方法中传递指定的模式
- 使用parse方法把符合模式的字符串解析为Date日期
注意 : parse方法声明了一ParseException解析异常, 如果字符串和构造方法中的模式不一样程序就会抛出此异常
e.g.
String text = "2020-06-25 08:34:48";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(text);
System.out.println(date);
System.out.println(date.getTime());
/* 输出 :
Thu Jun 25 08:34:48 CST 2020
1593045288000
*/
Calendar类
Java.util.Calendar
Calendar类是一个抽象类, 里面提供了很多操作日历字段的方法 ( YEAR, MONTH, DAY_OF_MONTH. HOUR ...)
Calendar类无法直接创建对象使用, 里面有一个静态方法getInstance()
, 该方法返回了Calendar类的子类对象
Calendar类的常用成员方法
-
public int get(int field)
: 返回给定日历字段的值 -
public void set(int field, int value)
: 将给定日历字段设置为给定值 -
public abstract void add(int field, int amount)
: 根据日历的规则, 为给定的日历字段添加或减去指定的时间量 -
public Date getTime()
: 返回一个表示此Calendar时间值的Date对象
其中的int field
是日历字段如YEAR, MONTH...可直接用Calendar.YEAR....获取
- get的使用 :
e.g.
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)); // 2020
System.out.println(c.get(Calendar.DATE)); // 25
- set和getTime的使用 :
e.g.
Calendar c = Calendar.getInstance();
c.set(2000,8,7);
Date date = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
// 2000-09-07
- add的使用 :
e.g.
Calendar c = Calendar.getInstance();
c.set(2000,8,7);
c.add(Calendar.YEAR,-1); //2000 -- 1999
Date date = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
// 1999-09-07