Java中日期與時間相關類用法解析

Java中日期與時間相關類用法解析

Date類

Date類主要用來獲取當前的日期與時間

//當前的日期和時間
Date date = new Date();
//從1970年1月1日算起過了6000秒的日期和時間
Date date2 = new Date(60000);
//獲取當前的時間戳(自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數)
long currentTimeMills = date.getTime();

Calendar類

Calendar類是專用的日期和時間處理類,可以設置和獲取日期數據的特定部分,如分鐘、小時、日,可以在這些特定部分進行加減獲得新的日期。

創建一個代表系統當前日期的Calendar對象
Calendar c = Calendar.getInstance(); //默認是當前日期
創建一個指定日期的Calendar對象
//創建一個代表2017年10月20日的Calendar對象
Calendar c = Calendar.getInstance();
c.set(2017,10 - 1,20); //注意月份要 -1

也可以設置時、分、秒
set(itn year,int month,int date,int hourOfDay,int minute, int second);

Calendar類對象字段類型
常量 類型
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類對象的設置
Set設置

兩種方法:

// 1.直接設置
public final void set(int year,int month,int date)
// 如設置2017年10月20日
c.set(2017,10 - 1, 20);
// 2.通過字段類型設置
public void set(int field,int value)
// 如設置年份爲2016年
c.set(Calendar.YEAR,2016);
Add設置
Calendar c = Calendar.getInstance();
// 把c對象的日期加上10,也就是c表示爲10天后的日期,其它所有的數值會被重新計算
c.add(Calendar.DATE,10);
// 把c對象的日期減去10,也就是c表示爲10天前的日期
c.add(Calendar.DATE,-10);
Calendar類對象信息的獲得
Calendar c = Calendar.getInstance();
// 獲得年份
int year = c.get(Calendar.YEAR);
// 獲得月份
int month = c.get(Calendar.MONTH) + 1;
// 獲得日期
int date = c.get(Calendar.DATE);
// 獲得小時
int hour = c.get(Calendar.HOUR_OF_DAY);
// 獲得分鐘
int minute = c.get(Calendar.MINUTE);
// 獲得秒
int second = c.get(Calendar.SECOND);
// 獲得星期幾(注意(這個與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)
int day = c.get(Calendar.DAY_OF_WEEK);
Calendar類和Date的轉化
// Calendar轉化爲Date
Calendar c = Calendar.getInstance();
Date date = c.getTime();

DateFormat類

Date類獲取的時間是以默認的英文格式輸出日期和時間。DateFormat類專門用於將日期格式化爲字符串或者特定格式顯示的字符串轉換爲一個Date對象。

DateFormat類中的4個常量
DateFormat.FULL :  //完整格式      2017年10月21日 星期六
DateFormat.LONG:  //長格式       2017年10月21日
DateFormat.MEDIUM:  //普通格式    2017-10-21
DateFormat.SHORT:  //短格式     17-10-21
獲取DateFormat對象並格式化日期
Date date = new Date();
//默認格式
DateFormat defaultFormat = DateFormat.getDateInstance();
System.out.println("defaultFormat = " + defaultFormat.format(date));
DateFormat defaultTimeFormat = DateFormat.getDateTimeInstance();
System.out.println("defaultTimeFormat = " + defaultTimeFormat.format(date));
//Full格式
DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println("fullFormat = " + fullFormat.format(date));
DateFormat fullTimeFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
System.out.println("fullTimeFormat = " + fullTimeFormat.format(date));
/*
打印結果:
defaultFormat = 2017-10-21
defaultTimeFormat = 2017-10-21 11:06:19
fullFormat = 2017年10月21日 星期六
fullTimeFormat = 2017年10月21日 星期六 上午11時06分19秒 CST
*/

SimpleDateFormat類

可以使用SimpleDateFormat類來對日期時間進行格式化,可以將日期轉換爲指定格式的文本,也可將文本轉換爲日期
1. 可以使用format()方法將日期轉換爲指定格式的文本,將時間轉換爲指定格式的字符串
2. 可以使用parse()方法將文本轉換爲日期。

常用日期模板
標記 描述
y 表示年,年份是四位數字,所以需要使用“yyyy”表示年。
M 表示月,月份是兩位數字,所以需要使用“MM”表示月。
d 表示日,日是兩位數字,所以需要使用“dd”表示日。
H 表示時,兩位數字“HH”。
m 表示分,兩位數字“mm”。
s 表示秒,兩位數字“ss”。
S 表示毫秒,三位數字“SSS”。

大全:
G Era標誌符 例:AD
y 年
M 年中的月份
w 年中的週數
W 月份中的週數
D 年中的天數
d 月份中的天數
F 月份中的星期
E 星期中的天數
a am/pm標記 例:PM
H 一天中的小時數(0-23)
k 一天中的小時數(1-24)
K am/pm中的小時數(0-11)
h am/pm中的小時數(1-12)
m 小時中的分鐘數
s 分鐘中的秒數
S 毫秒數
z 時區 例:Pacific Standard Time;PST;GMT-08:00
Z 時區 例:-0800

SimpleDateFormat的使用
//創建一個SimpleDateFormat對象
SimpleDateFormat format1 = new SimpleDateFormat("Gyyyy年MM月dd日");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
SimpleDateFormat format3 = new SimpleDateFormat("今天是今年的第D天,第w周,這個月的第W周,E,今天的第k個小時");    
// 按SimpleDateFormat對象的日期模板格式化Date對象  
System.out.println(format1.format(new Date()));  
System.out.println(format2.format(new Date()));  
System.out.println(format3.format(new Date())+"\n");  

//將字符串解析成Date對象,使用parse()方法將文本轉換爲日期
String text = "2017/10/22 18:20:35";
System.out.println(format2.parse(text));
//打印結果
/*
公元2017年10月21日
2017/10/21 11:36:31
今天是今年的第294天,第42周,這個月的第3周,星期六,今天的第11個小時

Sun Oct 22 18:20:35 CST 2017
*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章