1.Date类概述
java.util.Date ;类表示特定的瞬间,精确到毫秒。
查阅Date类的描述,发现Date拥有多个构造器,只是大部分已经过时,但是其中有未过时的构造器可以把毫秒值转成日期对象。
- public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
- public Date(long):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GTM)以来的指定毫秒数。
简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造函数,可以自定义毫秒时刻。例如:
import java.util.Date; public class Demo01Date { public static void main(String[] args) { // 创建日期对象,把当前的时间 System.out.println(new Date()); // Sun Jan 27 21:01:10 GMT+08:00 2019 // 创建日期对象,把当前的毫秒值转成日期对象 System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 GMT+08:00 1970 } }
tip:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。
常用方法
Date类中的多数方法已经过时,常用的方法有:
public long getTime() 把日期对象转换成对应的时间毫秒值。
2.DateFormat类
java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也可以在Date对象与String对象之间进行来回转换。
- 格式化:按照指定的格式,从Date对象转换成String对象。
- 解析:按照指定的格式,从String对象转换成Date对象。
构造方法
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式来指定格式化或解析的标准。构造方法为:
- public SimpleDateFormat(String pattern):用给定的模式和默认的语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
格式规则
常用的格式规则为:
tip:更详细的格式规则,可以参考SimpleDateFormat类的API文档
标识字母(区分大小写) | 含义 |
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
常用方法
DateFormat类的常用方法:
- public String format(Object obj):可以将接收的Date对象格式化为字符串。(该方法同时可以接收时间毫秒值)
- public Date parse(String source):将字符串解析为Date对象。
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd") //将当前日期转换为字符串 String s = df1.format(new Date()); System.out.println("---------------------------------------------"); //将字符串转换为日期对象 SimpleDateFormat df2 = new SimpleDateFormat("yyyy/MM/dd") Date d = df2.parse("1949/10/01") System.out.println("---------------------------------------------"); //将时间毫秒值转换成日期对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date d1 = new Date(); String str = sdf.format(d1.getTime);
注意:使用psrse方法把字符串解析为Date对象时,被解析字符串的格式必须与DateFormat对象中的格式相同!
如以上代码中的被解析的字符串“1949/10/01”对应的日期格式为“yyyy/MM/dd”