您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记:编程常用类-日期时间Date类(java.util.Date)

2017-04-20 19:55 274 查看
编程常用类

时间日期类(java.util.Date)

Date类用于表示日期时间,它位于java.util包中。Date类在设计之初没有考虑到国际化,并且现在有很多方法都被标记为过时状态(从Java的API规文档中可以看到)
java.util.Date 表示特定的瞬间,精确到毫秒。提供了很多的方法,但是很多已经过时,不推荐使用

1.1 创建Date类的对象

Date类它使用系统中当前日期时间创建并初始化Date类的实例对象。

例:

Date now = new Date();


Date类的另一个构造方法是Date(long date),这个构造方法接收一个long类型的整形的整数来初始化Date对象,这个long类型的整数是标准基准时间(称为“历元(epoch)“,即1970年1月1日00:00:00)开始的毫秒数。很多和日期时间有关的类都能转换为long类型整数。System类的currentTimeMillis()方法可以获取系统当前时间间距历元的毫秒数。

例:

Long timeMillis = System.currentTimeMillis();
Date date = new Date(timeMillis);


以上两种方式获得的时间转为字符串的结果为:

Tue Apr 18 17:32:39 CST 2017

默认格式为:星期几 几月 几日 时:分:秒 (美国)中央时区 年

1.2 比较Date类的对象

Date类创建的对象代表日期和时间

after方法 用于测试次日期对象是否在指定日期之后。

方法声明:

public boolean after(Date when)


when:要比较的日期对象。

当Date对象表示的时间比when表示的时间晚,返回true,否则返回false。

before方法 用于检测此日期对象是否在指定日期之前。

方法声明:

public boolean before(Date when)


when:要比较的日期对象。

当Date对象表示的时间比when表示的时间早,返回true,否则返回false。

compareTo()方法 用于比较两个日期对象的顺序,常用于多个Date对象的排序。

方法声明:

public int compareTo(Date anotherDate)


anotherDate:该参数是要比较其他日期对象。

如果anotherDate等于当前需要比较的Date对象表示的时间,则返回0;当前Date比anotherDate前择返回小于0的值;否则返回大于0的值。

1.3 更改Date对象

getTime()方法 返回1970年1月1日00:00:00GMT以来此对象表示的毫秒数。

方法声明:

public long getTime()


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

方法声明:

public void setTime(long time)


time:毫秒数。

1.4 日期和时间的格式化输出

在应用程序设计中,经常需要显示时间日期。String类的静态format()方法通过特殊转义符作为参数可以实现对日期和时间的格式化。format()方法用于创建格式化的字符串,它有两种重载形式。

format(String format.Object...args) 使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。

语法:

String.ormat(String format,Object...args)


format:格式字符串。

args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数,此参数的数目是可变的,可以为0。

format(Local local,String format,Object...args)

local:格式化过程中要应用的语言环境。如果它为null,则不进行本地化。

format:格式字符串。

args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数,此参数的数目是可变的,可以为0。

1.4.1 日期格式化:

例:取年月日中的日。

Date date = new Date();
String day = String.format("%te",date);		//%te是日的转换符


常见的日期时间转换符

转换符 说明 示例

%te 一个月中的某一天(1~31) 2

%tb 指定语言环境的月份简称 Feb 或 二月

%tB 指定语言环境的月份全称 Feruary 或 二月

%tA 指定语言环境的星期全称 Monday 或 星期一

%ta 指定语言环境的星期简称 Mon 或 星期一

%tc 包括全部日期和时间信息 星期二 三月 35 13:32:11 CST 2017

%tY 4位年份 2008

%tj 一年中的第几天(001~366) 085

%tm 月份 03

%td 一个月中的第几天(01~31) 02

%ty 两位年份 08

1.4.2 时间格式化:时间格式化转换符比日期转换符更多、更精确,可以将时间格式化成时、分、秒、毫秒。

常见的时间格式化转换符

转换符 说明 示例

%tH 2位数字的24时制的小时(00~23) 05

%tI 2位数字的12时制的小时(01~12) 05

%tk 2位数字的24时制的小时(0~23) 5

%tl 2位数字的12时制的小时(1~12) 5

%tM 2位数字的分钟(00~59) 05

%tS 2位数字的秒数(00~60) 12

%tL 3位数字的毫秒数(000~999) 920

%tN 9位数字的微秒数(0000000000~999999999) 0124005638

%tp 指定语言环境的上下午标记 下午或pm

%tz 相对于GMT RFC 82 格式的数字时区偏移量 +0800

%tZ 时区缩写形式的字符串 CST

%ts 1970-01-01 00:00:00至现在经过的秒数 1234567890

%tQ 1970-01-01 00:00:00至现在经过的秒数 1234567890123

1.4.3 格式化常见的日期时间组合

常见的日期和时间组合的格式

转换符 说明 示例

%tF “年-月-日”格式(4位年份) 2008-03-25

%tD “月/日/年”格式(2位年份) 03/25/08

%tc 全部日期和时间信息 星期二 三月 25 15:00:00 CST 2017

%tr “时:分:秒 PM(AM)”格式(12时制) 03:12:12 下午

%tT “时:分:秒”格式(24时制) 15:12:12

%tR “时:分:”格式(24时制) 15:12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java class 编程 api 应用
相关文章推荐