java日期相關類的示例分析

這篇文章將為大家詳細講解有關java日期相關類的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

我們提供的服務有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、南州晴隆ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的南州晴隆網(wǎng)站制作公司

一、Date類

類 Date 表示特定的瞬間,精確到毫秒。用距離1970年1月1日00:00:00的毫秒數(shù)(long)類型來表示一個特定的時間點,該值可正可負。

Date類中很多方法已經(jīng)過時,使用Calendar來替代。

常用方法有

long getTime()
void setTime(long time)

public class T01Date { 
  public static void main(String[] args) { 
    //getTime():返回的時間是距離1970年的毫秒數(shù).值不受setTime()的影響 
    //date值受setTime()的影響 
    Date date=new Date(); 
    long current=date.getTime(); 
    System.out.println(current);//1472002479966 
    System.out.println(date);//Wed Aug 24 09:34:39 CST 2016 
    long time=current+1000*60*60*24;//時間設置為明日此時 
    date.setTime(time); 
    System.out.println(date.getTime());//1472002479966 
    System.out.println(current);//1472002479966 
    System.out.println(date);// Thu Aug 25 09:34:39 CST 2016 
  } 
}

二、SimpleDateFormat

SimpleDateFormat根據(jù)特定的日期格式在Date和字符串之間轉(zhuǎn)換

常用方法

String format(Date date):將日期按照指定格式轉(zhuǎn)換成字符串
Date parse(String str):將字符串按照指定格式轉(zhuǎn)換成Date

可以用來指定格式的字符

/** 
 * java.text.SimpleDateFormat 
 * 該類可以根據(jù)一個指定的日期格式將Date于String 
 * 之間相互轉(zhuǎn)換 
 * @author zc 
 * 
 */ 
public class T02SimpleDateFormat { 
  public static void main(String[] args) throws ParseException { 
    Date now =new Date(); 
    //2016-08-12 09:55:23 
    //yyyy-MM-dd hh:ss:mm 
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh時ss分mm秒"); 
    String str = sdf.format(now); 
    System.out.println(str); 
    //a 居然能區(qū)分上下午漢字 
    String strDate="2012年12月20日下午12點20分30秒"; 
    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日ahh點ss分mm秒"); 
    Date date=sdf2.parse(strDate); 
    System.out.println(date); 
  } 
}

三、Calendar

java.util.Calendar是抽象類,主要用來對時間分量進行計算。

常用方法

(1)Date和Calendar之間的轉(zhuǎn)換

  //默認創(chuàng)建出來的Calendar的實現(xiàn)類表示當前系統(tǒng)時間 
    Calendar c=Calendar.getInstance(); 
    //將Calendar轉(zhuǎn)換為Date 
    Date date=c.getTime(); 
    //Date->Calendar 
    /* 
     * void setTime(Date date) 
     * 該方法可以使當前Calendar表示給定的 
     * Date所表示的時間 
     * */ 
    c.setTime(date); 
  } 
}

(2)getInstance()方法

Calendar是抽象類,其提供了一個工廠方法:Calendar getInstance()用來獲取Calendar類型的實例

(3)get(int field)方法獲取時間分量

import java.util.Calendar; 
/** 
 * Calendar提供了獲取各個時間分量的值的方法 
 * @author zc 
 */ 
public class T05Calendar2 { 
  public static void main(String[] args) { 
    Calendar c=Calendar.getInstance(); 
    //獲取年 
    int year=c.get(Calendar.YEAR); 
    System.out.println("year:"+year);//2016 
    //獲取月:月從0開始!!!,0表示一月 
    int month=c.get(Calendar.MONTH); 
    System.out.println("month:"+month);//7 
    /* 
     * 和天相關的時間分量 
     * DATE,DAY_OF_MONTH:是一致的,表示月中的第幾天 
     * DAY_OF_YEAR:表示年中的天 
     * DAY_OF_WEEK:表示周中的天 
     * 
     * */ 
    System.out.println(c.get(Calendar.DATE)); 
    System.out.println(c.get(Calendar.DAY_OF_MONTH)); 
    System.out.println(c.get(Calendar.DAY_OF_YEAR)); 
    System.out.println(c.get(Calendar.DAY_OF_WEEK)); 
    int dow=c.get(Calendar.DAY_OF_WEEK)-1; 
    String[] data={"日","一","二","三","四","五","六"}; 
    System.out.println("周"+data[dow]); 
    //獲取小時,分鐘,秒   HOUR_OF_DAY:24小時  HOUR:12小時  
    System.out.println(c.get(Calendar.HOUR_OF_DAY));//14 
    System.out.println(c.get(Calendar.HOUR));//2 
    System.out.println(c.get(Calendar.MINUTE)); 
    System.out.println(c.get(Calendar.SECOND)); 
  } 
}

(4)set()方法設置時間分量

/** 
 * 設置時間分量 
 * @author zc 
 * 
 */ 
public class T06Calendar3 { 
  public static void main(String[] args){ 
    //表示2008-08-08 20:08:08 
    //設置年 
    Calendar c=Calendar.getInstance(); 
    c.set(Calendar.YEAR,2008); 
    //設置月,月從0開始 
    c.set(Calendar.MONTH,Calendar.AUGUST); 
    //設置日 
    c.set(Calendar.DATE, 8); 
    //設置時 
    c.set(Calendar.HOUR_OF_DAY,20); 
    //設置分 
    c.set(Calendar.SECOND,8); 
    //設置秒 
    c.set(Calendar.MINUTE,8); 
    System.out.println(c.getTime()); 
    //!?。≡O置的時間分量超出后,會自行進位 
  } 
}

(5)add()方法在當前時間分量基礎上修改時間分量

(6)getActualMaximum()獲取某個時間分量所允許的最大值

/** 
 * 獲取某個時間分量所允許的最大值 
 * @author zc 
 */ 
public class T07Calendar4 { 
  public static void main(String[] args) { 
    Calendar c=Calendar.getInstance(); 
    //查看當月共多少天 
    int days=c.getActualMaximum(Calendar.DAY_OF_MONTH); 
    System.out.println(days); 
    //查看今年多少天 
    int doy=c.getActualMaximum(Calendar.DAY_OF_YEAR); 
    System.out.println(doy); 
    int t=c.getActualMaximum(Calendar.MINUTE); 
    System.out.println(t); 
  } 
}

四、Date、SimpleDateFormat和Calendar的一個綜合實例

@Test 
  public void test01() throws ParseException{ 
    //要求用戶輸入一個日期,計算后,指定格式輸出日期 
    /*String--SimpleDateFormat()-->Date 
    Date-->Calendar 
    使用Calendar進行相應計算 
    Calendar-->Date 
    Date--SimpleDateFormat-->String 
    */ 
    String input="2013-03-26"; 
     
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
    Date date=sdf.parse(input); 
    Calendar c=Calendar.getInstance(); 
    //set(),與add() 
    c.setTime(date); 
    c.add(Calendar.YEAR,1); 
    c.set(Calendar.MONTH,0); 
    c.set(Calendar.DAY_OF_WEEK,1); 
     
    date=c.getTime(); 
    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd分hh時ss分mm秒"); 
    String strTime=sdf2.format(date); 
    System.out.println(strTime); 
  }

關于“java日期相關類的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網(wǎng)站欄目:java日期相關類的示例分析
網(wǎng)頁URL:http://muchs.cn/article32/gepjpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、服務器托管網(wǎng)站設計公司、網(wǎng)站排名、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站