日期相关类

在实际软件项目开发中,经常会遇到处理时间和日期的情况。学会处理时间和日期,是程序员的一项基本技能。Java 语言中提供了Date、Calendar、GregorianCalendar、DateFormat、SimpleDateFormat类共同组成了标准日期时间处理类。Date、Calendar和GregorianCalendar位于java.util包中,而DateFormat和SimpleDateFormat位于java.text包中。

Date类

Date类表示特定的瞬间,精确到毫秒。该类提供了很多方法,但是很多已经过时,不推荐使用。

方   法

描   述

 boolean after(Date when)

测试此日期是否在指定日期之后

 boolean before(Date when)

测试此日期是否在指定日期之前

long getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

 void setTime(long time)

设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点

DateFormat抽象类与SimpleDateFormat类

 java.text.DateFormat是一个抽象类,我们可以使用它用预定义的本地化方式格式化和解析时间日期。因为DateFormat是一个抽象类,所以不能直接实例化,但是它提供了大量的静态方法返回一个具体的子类,让我们可以用不同的方法格式化日期时间。

DateFormat类的getDateInstance()方法返回一个将日期按照默认地区或者特定地区的方式格式化的DateFormat对象,此外,还可以使用DateFormat的常量FULL、LONG、SHORT或DEFAULT来指定格式化的风格。与此类似,DateFormat类的getTimeInstance()方法返回一个DateFormat对象格式化时间,getDateTimeInstance()方法返回一个DateFormat对象格式化日期和时间。这些方法都带有可选的格式化风格的常量以及代表地区的Locale对象的常量。最后,getInstance()方法返回一个默认的DateFormat对象,将时间和日期都按照SHORT样式格式化。

得到了DateFormat类的具体子类后,我们就可以调用具体子类的Format()方法,按照预定义的方式格式化日期时间。

上面对日期时间格式化,都是采用默认的格式进行格式化。如果要采用自定义的格式输出日期时间格式,就要采用DateFormat的具体化子类SimpleDateFormat了。SimpleDateFormat类是一个以与语言环境相关的方式来格式化和分析日期的具体类,它可以让我们选择任何用户定义的日期/时间格式的模式来格式化日期和时间。

创建SimpleDateFormat对象时,需要传入一个日期和时间格式字符串做为格式化的模板。日期和时间格式由日期和时间模式字母所组成的字符串来指定。

模 式 字 母

日期或时间元素

示例

G

公元

公元

y

1996、 96

M

年中的月份

一月、二月 

w

年中的周数

27

W

月份中的周数

2

D

年中的天数

189

d

月份中的天数

10

F

月份中的星期

2

E

星期中的天数

星期五 

a

上午/下午 标记

AM/PM

H

一天中的小时数(0-23)

0

k

一天中的小时数(1-24)

24

K

am/pm 中的小时数(0-11)

0

h

am/pm 中的小时数(1-12)

12

m

小时中的分钟数

30

s

分钟中的秒数

55

S

毫秒数

978

z

时区

GMT-08:00

Z

时区

-0800

Calendar抽象类与GregorianCalendar类

在JDK第一次发布时,Date类是唯一的代表日期时间的类。但是由于Date类在编写的时候并没有考虑到各个国家的实际情况,在国际化方面考虑不够周到,所以从JDK1.1版本开始,Java中推荐使用Calendar类来处理日期时间,并将很多Date类的方法设置为已经过时。

Calendar类是一个抽象类,它的功能比Date类要强大很多,实现方式也比Date类要复杂。Calendar类提供了很多方法,来完成日期时间之间的相互操作功能。

方法

作用

add()

实现在某个日期上的增加若干天、年、月、小时等后的新日期

get()

得到日期对象中的年、月、日、小时、分、秒等

set()

修改日期对象中的年、月、日、小时、分、秒等

getInstance()

返回一个Calendar类型的对象实例

因为Calendar类是一个抽象类,所以不能使用构造器来实例化一个Calendar对象.但是Calendar类提供了静态方法getInstance()来获取Calendar类的具体子类的对象,而它唯一一个具体子类是GregorianCalendar类,所以它的getInstance()方法返回的就是一个GregorianCalendar对象。GregorianCalendar类用来代表世界上大多数国家和地区所采用的公历日历。

GregorianCalendar类的无参数构造方法用来描述今天,用年、月、日、小时、分、秒来作为构造方法的参数时用来描述特定的一天。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值