今天長沙中公優(yōu)就業(yè)java培訓機構小編為大家介紹“java中的Date類的使用方法”,希望此文能夠幫助到正在學習java的零基礎學員,下面就隨下小編一起看看java中的Date類的使用方法都有拿些?
一、 Date類對象的創(chuàng)建
1、創(chuàng)建一個當前時間的Date對象
//創(chuàng)建一個代表系統(tǒng)當前日期的Date對象
Date d = new Date();
2、創(chuàng)建一個我們指定的時間的Date對象:
使用帶參數(shù)的構造方法Date(int year, int month, int day) ,可以構造指定日期的Date類對象,Date類中年份的參數(shù)應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以后的值。
//創(chuàng)建一個代表2014年6月12號的Date對象
Date d1 = new Date(2014-1900, 6-1, 12); (注意參數(shù)的設置)
3、正確獲得一個date對象所包含的信息
如:Date d2 = new Date(2014-1900, 6-1, 12);
//獲得年份 (注意年份要加上1900,這樣才是日期對象d2所代表的年份)
int year = d2.getYear() + 1900;
//獲得月份 (注意月份要加1,這樣才是日期對象d2所代表的月份)
int month = d2.getMonth() + 1;
//獲得日期
int date = d2.getDate();
//獲得小時
int hour = d2.getHours();//不設置默認為0
//獲得分鐘
int minute = d2.getMinutes();
//獲得秒
int second = d2.getSeconds();
//獲得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次類推了)
int day = d2.getDay();
二、Calendar類
Calendar類的功能要比Date類強大很多,可以方便的進行日期的計算,獲取日期中的信息時考慮了時區(qū)等問題。而且在實現(xiàn)方式上也比Date類要復雜一些
1、Calendar類對象的創(chuàng)建
Calendar類是一個抽象類,由于Calendar類是抽象類,且Calendar類的構造方法是protected的,所以無法使用Calendar類的構造方法來創(chuàng)建對象,API中提供了getInstance方法用來創(chuàng)建對象。
2、創(chuàng)建一個代表系統(tǒng)當前日期的Calendar對象
Calendar c = Calendar.getInstance();//默認是當前日期
3、創(chuàng)建一個指定日期的Calendar對象
使用Calendar類代表特定的時間,需要首先創(chuàng)建一個Calendar的對象,然后再設定該對象中的年月日參數(shù)來完成。
//創(chuàng)建一個代表2014年5月9日的Calendar對象
Calendar c1 = Calendar.getInstance();
c1.set(2014, 5 - 1, 9);//調用:public final void set(int year,int month,int date)
4、Calendar類對象信息的設置與獲得
(1)Calendar類對象信息的設置
A、Set設置
如:Calendar c1 = Calendar.getInstance();
調用:public final void set(int year,int month,int date)
c1.set(2014, 6- 1, 9);//把Calendar對象c1的年月日分別設這為:2014、6、9
B、利用字段類型設置
如果只設定某個字段,例如日期的值,則可以使用public void set(int field,int value)
//把 c1對象代表的日期設置為10號,其它所有的數(shù)值會被重新計算
c1.set(Calendar.DATE,10);
//把c1對象代表的年份設置為2014年,其他的所有數(shù)值會被重新計算
c1.set(Calendar.YEAR,2015);
其他字段屬性set的意義以此類推
Calendar類中用一下這些常量表示不同的意義,jdk內(nèi)的很多類其實都是采用的這種思想
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——星期幾
C、Add設置(可用與計算時間)
Calendar c1 = Calendar.getInstance();
//把c1對象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的數(shù)值會被重新計算
c1.add(Calendar.DATE, 10);
//把c1對象的日期加上-10,也就是c1所表的日期的10天前的日期,其它所有的數(shù)值會被重新計算
c1.add(Calendar.DATE, -10);
其他字段屬性的add的意義以此類推
(2)Calendar類對象信息的獲得(使用get())
Calendar c1 = Calendar.getInstance();
// 獲得年份
int year = c1.get(Calendar.YEAR);
// 獲得月份
int month = c1.get(Calendar.MONTH) + 1;(MONTH+1)
// 獲得日期
int date = c1.get(Calendar.DATE);
// 獲得小時
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 獲得分鐘
int minute = c1.get(Calendar.MINUTE);
// 獲得秒
int second = c1.get(Calendar.SECOND);
// 獲得星期幾(注意(這個與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)
int day = c1.get(Calendar.DAY_OF_WEEK);
三、 GregorianCalendar類
GregorianCalendar 是 Calendar 的一個具體子類,提供了世界上大多數(shù)國家使用的標準日歷系統(tǒng)。
1、GregorianCalendar類對象的創(chuàng)建
GregorianCalendar有自己的構造方法,而其父類Calendar沒有公開的構造方法。
GregorianCalendar() 在具有默認語言環(huán)境的默認時區(qū)內(nèi)使用當前時間構造一個默認的 GregorianCalendar。
在具有默認語言環(huán)境的默認時區(qū)內(nèi)構造一個帶有給定日期設置的 GregorianCalendar。
GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
2、創(chuàng)建一個代表當前日期的GregorianCalendar對象
GregorianCalendar gc = new GregorianCalendar();
//創(chuàng)建一個代表2014年6月19日的GregorianCalendar對象(注意參數(shù)設置,與其父類是一樣,月份要減去1)
GregorianCalendar gc = new GregorianCalendar(2014,6-1,19);
3、另外:GregorianCalendar有一個方法:boolean isLeapYear(int year) 確定給定的年份是否為閏年
四、DateFormat類和SimpleDateFormat類
public class SimpleDateFormat extends DateFormat 是一個以與語言環(huán)境相關的方式來格式化和分析日期的具體類。(日期時間輸出的工具類)
它允許進行日期格式化(日期 -> 文本)、分析(文本 -> 日期)和規(guī)范化。所以SimpleDateFormat類可以實現(xiàn):String 到 Date,Date到String的互轉
五、日期類對象之間的互轉
Date類對象與long型時間的互轉
//1.將Date類的對象轉換為long型時間
Date d= new Date();
//使用對象的getTime()方法完成
long dLong = d.getTime();
//2.將long型時間轉換為Date類的對象
long time = 1290876532190L;
//使用Date的構造方法完成
Date d2 = new Date(time);
Calendar對象和long型時間之間的互轉
// 將Calendar對象轉換為相對時間
Calendar c = Calendar.getInstance();
long t1 = c.getTimeInMillis();
// 將long轉換為Calendar對象
Calendar c1 = Calendar.getInstance();
long t = 1252785271098L;
c1.setTimeInMillis(t1);
Calendar對象和Date對象之間的互轉
//1 .將Calendar對象轉換為Date(c.getTime())
Calendar c = Calendar.getInstance();
Date d = c.getTime();
// 2.將Date轉換為Calendar對象(s.setTime(date))
Calendar c1 = Calendar.getInstance();
Date d1 = new Date();
//通過setTime()方法后,日歷c1所表示的日期就d1的日期
c1.setTime(d1);
String Calendar之間的轉換:
//1.Date 轉化String
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
//2.String 轉化Date
String str="2010-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date birthday = sdf.parse(str);
Date個Calendar對象之間的轉換
//1.Date 轉化為Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
//2.Calenda轉換為Date
Calendar calendar = Calendar.getInstance();
Date date =calendar.getTime();
Date和String對象之間的轉換
//1.Calendar 轉化 String
Calendar calendat = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd")0;
String dateStr = sdf.format(calendar.getTime());
//2.String 轉化Calendar
String str="2010-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
六、利用以上各個類的功能,我們可以很簡單的實現(xiàn)一些時間計算的功能,下面看幾個方法:
l、判斷是否是閏年
public static boolean isLeapYear(int year) {
GregorianCalendar calendar = new GregorianCalendar();
return calendar.isLeapYear(year);
}
2、獲取當前日期的字符串表示形式
public static String getCurrentDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(System.currentTimeMillis());
}
3、給出任意一個年月日得到該天是星期幾
public static int getWeek(String date) {
// 注意參數(shù)的大小寫格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
Date d = dateFormat.parse(date);
c.setTime(d);
} catch (ParseException e) {
}
return c.get(Calendar.DAY_OF_WEEK)-1;
}
4、 獲得今天n天以后或者n天以前是那一天
public static String getDistanceDay(int day) {
Calendar calen = Calendar.getInstance();
calen.add(Calendar.DAY_OF_MONTH, day);
Date date = calen.getTime();
// 這里也個用SimpleDateFormat的format()進行格式化,然后以字符串形式返回格式化后的date
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
return dateFormat.format(date);
}
5、 獲得距離指定日期n天的那一天的日期
public static String getDistanceDay(String date, int day) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date d;
Calendar c =Calendar.getInstance();
try {
d = dateFormat.parse(date);
c.setTime(d);
c.add(Calendar.DATE, day);
} catch (ParseException e) {
e.printStackTrace();
}
return dateFormat.format(c.getTime());
}
6、獲得給定兩個日期相差的天數(shù)
public static long getGapDays(String date1, String date2) {
String[] d1 = date1.split("-");
String[] d2 = date2.split("-");
Calendar c = Calendar.getInstance();
c.set(Integer.parseInt(d1[0]), Integer.parseInt(d1[1]), Integer
.parseInt(d1[2]), 0, 0, 0);
long l1 = c.getTimeInMillis();
c.set(Integer.parseInt(d2[0]), Integer.parseInt(d2[1]), Integer
.parseInt(d2[2]), 0, 0, 0);
long l2 = c.getTimeInMillis();
return (Math.abs(l1 - l2) / (24 * 60 * 60 * 1000));
}
以上就是長沙中公優(yōu)就業(yè)java培訓機構小編介紹的“java中的Date類的使用方法”的內(nèi)容,希望能夠幫助到大家,更多java資訊最新內(nèi)容請繼續(xù)關注長沙中公優(yōu)就業(yè)java培訓機構官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關免費視頻教程推薦
javase基礎視頻教程下載——Date日期類:http://www.bjpowernode.com/xiazai/2520.html