Java – 时间日期基础 Date For JDK7

简介

Java 提供两个关于时间运算的类,分别是 Date类和 SimpleDateFormat 类。

Date 是用于表示时钟时间的,而 SimpleDateFormat 则用于格式化日期时间的类。

 

Date 时间类

Date 类是一个 JDK 写好的 Javabean 类,用来描述时间,精确到毫秒。

构造方法

利用空参构造创建的对象,默认表示系统当前时间。

Date date = new Date();
System.out.println(date);  // => 输出当前时间Wed Dec 07 16:36:47 CST 2022

系统在底层实现中,其实也是调用 System.currentTimeMillis();方法

 

利用有参构造创建的对象,表示指定的时间。

Date date = new Date(12345678999L);
System.out.println(date);  // => 输出时间戳为 12345678999的时间 Sun May 24 05:21:18 CST 1970

 

设置时间值

date.setTime(1234567L);
设置时间值,值为毫秒级时间戳

 

取得时间值

date.getTime();  // =>12345678999
取得时间值,值为毫秒级时间戳

 

SimpleDateFormat 格式化时间

通过使用 SimpleDateFormat 类,可以让字符串格式的时间值转成真正的日期值,也可以把 Date 对象的时候转成我们想要的格式。

构造方法

构造一个 SimpleDateFormat,使用默认格式

SimpleDateFormat sdf = new SimpleDateFormat();

使用默认格式 yyyy/MM/dd HH:mm:ss

 

构造一个 SimpleDateFormat,使用指定格式

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

使用指定格式 yyyy-MM-dd HH:mm:ss

 

 

format() 格式化

format() 格式化方法是使日期对象转为字符串的方法

SimpleDateFormat sdf = new SimpleDateFormat();
sdf.format(new Date());
将当时放法格式化为默认格式

 

 

 

parse() 解析

parse() 解析方法是使字符串转为日期对象

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.parse("2022-11-11 11:11:11");
将字符串表达的时间转为Date类对象

注意:字符串格式必须要和SimpleDateFormat 构造时的格式一致,否则会报错。

 

 

格式字母表示

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -800

 

Calendar 日历

Calendar 代表了系统当前时间的日历对象,可以单独修改、获取时间中的年,月,日。

Calendar 是一个抽象类,不能直接创建对象。

 

获取Calendar对象

Calendar c = Calendar.getInstance()

 

 

基础方法

Data getTime()                 ==>  获取日期对象
void setTime()                  ==>  给日历设置日期对象
long getTimeInMillis()          ==>  拿到时间毫秒值
void setTimeMillis(long millis) ==>  给日历设置时间毫秒值
int get(int field)              ==>  取日历中的某个字段信息
void set(int field, int value)  ==>  修改日历的某个字段信息
void add(int field, int amount) ==>  为某个字段增加、减少指定的值

 

字段信息

日历对象实际上是一个包含17个成员的数组,每个数组成员分别保存日历中的每一个属性字段,其中该字段如下:

 

字段值 别名 说明 备注
 0 Calendar.ERA 纪元
 1 Calendar.YEAR
 2 Calendar.MONTH
 3 Calendar.WEEK_OF_YEAR 一年中第几周
 4 Calendar.WEEK_OF_MONTH 一月中第几周
 5 Calendar.DATE
 5 Calendar.DAY_OF_MONTH
 6 Calendar.DAY_OF_YEAR 一年中第几日
 7 Calendar.DAY_OF_WEEK 一周中第几日
 8 Calendar.DAY_OF_WEEK_IN_MONTH 一月中第几周
 9 Calendar.AM_PM 上下午
 10 Calendar.HOUR
 11 Calendar.HOUR_OF_DAY 24小时制的时
 12 Calendar.MINUTE
 13 Calendar.SECOND
 14 Calendar.MILLISECOND 毫秒
 15 Calendar.ZONE_OFFSET
 16 Calendar.DST_OFFSET
 17 Calendar.FIELD_COUNT
 1 Calendar.SUNDAY 星期日 星期第一天为周日
 2 Calendar.MONDAY 星期一 星期第一天为周日
 3 Calendar.TUESDAY 星期二 星期第一天为周日
 4 Calendar.WEDNESDAY 星期三 星期第一天为周日
 5 Calendar.THURSDAY 星期四 星期第一天为周日
 6 Calendar.FRIDAY 星期五 星期第一天为周日
 7 Calendar.SATURDAY 星期六 星期第一天为周日
 0 Calendar.JANUARY 一月 月份从0开始计,取值0~11
 1 Calendar.FEBRUARY 二月 月份从0开始计,取值0~11
 2 Calendar.MARCH 三月 月份从0开始计,取值0~11
 3 Calendar.APRIL 四月 月份从0开始计,取值0~11
 4 Calendar.MAY 五月 月份从0开始计,取值0~11
 5 Calendar.JUNE 六月 月份从0开始计,取值0~11
 6 Calendar.JULY 七月 月份从0开始计,取值0~11
 7 Calendar.AUGUST 八月 月份从0开始计,取值0~11
 8 Calendar.SEPTEMBER 九月 月份从0开始计,取值0~11
 9 Calendar.OCTOBER 十月 月份从0开始计,取值0~11
 10 Calendar.NOVEMBER 十一月 月份从0开始计,取值0~11
 11 Calendar.DECEMBER 十二月 月份从0开始计,取值0~11
 12 Calendar.UNDECIMBER
 0 Calendar.AM 上午
 1 Calendar.PM 下午

 

get() 取字段方法

使用 get 方法可以取得指定时间的指定字段的数据,比如下面取得年字段的值

Calendar c = Calendar.getInstance();
c.get(Calendar.YEAR);

 

 

set() 设置字段方法

通过使用 set 方法,设定日期某个字段的值,如果设置的值不为常规值,则累计到其它字段值中,如下

Calendar c = Calendar.getInstance();
c.setTimeInMillis(0L);
c.set(Calendar.MONTH,13);

如上例,设置原点时间为 1970年1月1日,并设置月份为13月,但日历中并没有13月,则它会当作是一年多一月,最后得出日期将为 1971年1月1日

 

add() 追加时间方法

通过 add 方法可以对日历做自定义日期的计算

Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH,1);
c.add(Calendar.MONTH,-1);

当追加值为正值时,会向前追加日期,当追加值为负值时,会向后退回日期。

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Java – 时间日期基础 Date For JDK7
简介 Java 提供两个关于时间运算的类,分别是 Date类和 SimpleDateFormat 类。 Date 是用于表示时钟时间的,而 SimpleDateFormat 则用于格式化日期时间的类。   Date 时间类 Date 类是一……
<<上一篇
下一篇>>