Java常用类(八)日期与时间类
Date类
“时间如流水,一去不复返”,时间是一个一维的东西。所以,我们需要一把刻度尺来表达和度量时间。在计算机世界,我们把1970年1月1日00:00:00定为基准时间,每个度量单位时毫秒(1秒的千分之一)。
我们用long类型的变量来表示时间,从基准时间往前几亿年前,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:
long now=System.currenTimeMillis();
这个“时刻数值”是所有时间类的核心值,年月日都是根据这个“数值”计算出来的。我们工作学习涉及的时间相关类有如下这些:
在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精准到毫秒。
有以下方法:
1.Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒
2.Date(long Date) 分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元”,即1970年1月1日00:00:00 GMT)以来的指定的毫秒数
3.boolean after(Date when) 测试此日期是否在指定日期之后
4.boolean before(Date when) 测试此日期是否在指定日期之前
5.boolean equals(Object obj) 比较两个日期的相等性
6.long getTime() 返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
7.String toString() 把此Date对象转换为以下形式的String
dow mon dd hh:mm:ss zzz yyyy 其中,dow是一周中的某一天(Sun,Mon......)
Calendar类
Calendar类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年,月,日,时,分,秒的展示和计算。Calendar类是一个抽象类,不可以被实例化,在程序中需要调用其静态方法getInstance()来得到一个Calendar对象,然后才能调用其相应的方法:
GregorianCalendar是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。所以可以通过 new GregorianCalendar();父类引用来调用方法
注意:
注意月份的表示,一月是0,二月是1,以此类推,12月是11,因为大多数人习惯使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份:JANUARY,FEBRUARY等等
常用方法:
int get(int field) 返回指定日历字段的值
void add(int field,int amount) 根据日历规则,为指定的日历字段增加或减去指定的时间量
void set(int field,int value) 为指定日历字段设置指定值
void set(int year,int month,int date) 设置Calendar对象的年,月,日三个字段的值
其上大多数方法都用到了int类型的参数field,该参数需要接收Calendar类中指定的常量值,例如Calendar.YEAR用于表示年份
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧