java date 子类_Java学习关于时间操作的应用类--Date类、Calendar类及其子类

Date类

Date类封装了当期时间和日期。与Java1.0定义的原始版的Date类相比,Date类发生了本质的变化。在Java1.1发布时,原始版Date类定义的许多功能被移进Calendar类和DateFormat类中。原始版Date类中的许多方法已经不赞成使用。

Date类支持的构造函数:

Date()

Date(long   millisec)

第一个构造函数使用当前日期和时间初始化对象。第二个构造函数接收一个参数,该参数等于自1970年1月1日午夜以来经历的毫秒数。

Date对象创建以后,可以调用下面的方法。

序号方法和描述

1

boolean after(Date date)

若当调用此方法的Date对象在指定日期之后返回true,否则返回false。

2

boolean before(Date date)

若当调用此方法的Date对象在指定日期之前返回true,否则返回false。

3

Object clone( )

返回此对象的副本。

4

int compareTo(Date date)

比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。

5

int compareTo(Object obj)

若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。

6

boolean equals(Object date)

当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。

7

long getTime( )

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

8

int hashCode( )

返回此对象的哈希码值。

9

void setTime(long time)

用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。

10

String toString( )

转换Date对象为String表示形式,并返回该字符串。

日期比较

Java使用以下三种方法来比较两个日期:

使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

使用 SimpleDateFormat 格式化日期

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class Calendartest {

public static void main(String[] args) {

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d = new Date();

System.out.println(ft.format(d));

}

日期和时间的格式化编码

时间模式字符串用来指定时间格式。在此模式中,所有的 ASCII 字母被保留为模式字母,定义如下:

字母描述示例

G

纪元标记

AD

y

四位年份

2001

M

月份

July or 07

d

一个月的日期

10

h

A.M./P.M. (1~12)格式小时

12

H

一天中的小时 (0~23)

22

m

分钟数

30

s

秒数

55

S

毫秒数

234

E

星期几

Tuesday

D

一年中的日子

360

F

一个月中第几周的周几

2 (second Wed. in July)

w

一年中第几周

40

W

一个月中第几周

1

a

A.M./P.M. 标记

PM

k

一天中的小时(1~24)

24

K

A.M./P.M. (0~11)格式小时

10

z

时区

Eastern Standard Time

'

文字定界符

Delimiter

"

单引号

Calendar类

Calendar抽象类提供一套方法,允许将毫秒数形式的时间转化成大量有用的时间组成部分。例如年、月、日、小时、分和秒。Calendar类没有提供公有的构造函数,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

创建一个代表系统当前日期的Calendar对象

Calendarc =Calendar.getInstance();//默认是当前日期

创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象Calendarc1 =Calendar.getInstance();c1.set(2009,6-1,12);

Calendar类对象字段类型

Calendar类中用一下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

常量描述

Calendar.YEAR

年份

Calendar.MONTH

月份

Calendar.DATE

日期

Calendar.DAY_OF_MONTH

日期,和上面的字段意义完全相同

Calendar.HOUR

12小时制的小时

Calendar.HOUR_OF_DAY

24小时制的小时

Calendar.MINUTE

分钟

Calendar.SECOND

Calendar.DAY_OF_WEEK

星期几

Calendar类对象信息的获得

Calendarc1= Calendar.getInstance();

//获得年份

intyear= c1.get(Calendar.YEAR);

//获得月份

intmonth= c1.get(Calendar.MONTH)+ 1;

//获得日期

intdate= c1.get(Calendar.DATE);

//获得小时

inthour= c1.get(Calendar.HOUR_OF_DAY);

//获得分钟

intminute= c1.get(Calendar.MINUTE);

//获得秒

intsecond= c1.get(Calendar.SECOND);

//获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)

intday= c1.get(Calendar.DAY_OF_WEEK);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值