java中的Date類的使用方法

java中的Date類的使用方法

長沙中公優(yōu)就業(yè)      2022-03-11 14:00:01     5

java中的Date類的使用方法, 今天長沙中公優(yōu)就業(yè)java培訓機構小編為大家介紹“java中的Date類的使用方法”,希望此文能夠幫助到正在學習java的零基礎學員,

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

 

今天長沙中公優(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


培訓啦提醒您:交易時請核實對方資質,對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。