日期时间类
程序员文章站
2022-11-24 17:08:36
1.Date类概述 java.util.Date ;类表示特定的瞬间,精确到毫秒。 查阅Date类的描述,发现Date拥有多个构造器,只是大部分已经过时,但是其中有未过时的构造器可以把毫秒值转成日期对象。 public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 ......
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”