<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    用動(dòng)作去驅(qū)動(dòng)未來

    生命在于運(yùn)動(dòng),讓自己身體的每一個(gè)細(xì)胞都動(dòng)起來吧.

     

    java 日期的轉(zhuǎn)換

    1.計(jì)算某一月份的最大天數(shù)

    Calendar   time=Calendar.getInstance();
    time.clear();
    time.set(Calendar.YEAR,year);   //year   為   int  
    time.set(Calendar.MONTH,i-1);//注意,Calendar對(duì)象默認(rèn)一月為0                      
    int   day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數(shù)
    注:在使用set方法之前,必須先clear一下,否則很多信息會(huì)繼承自系統(tǒng)當(dāng)前時(shí)間

    2.Calendar和Date的轉(zhuǎn)化

    (1)   Calendar轉(zhuǎn)化為Date
    Calendar   cal=Calendar.getInstance();
    Date   date=cal.getTime();

    (2)   Date轉(zhuǎn)化為Calendar
    Date   date=new   Date();
    Calendar   cal=Calendar.getInstance();
    cal.setTime(date);

    3.格式化輸出日期時(shí)間   (這個(gè)用的比較多)

    Date   date=new   Date();
    SimpleDateFormat   df=new   SimpleDateFormat("yyyy-MM-dd   hh:mm:ss");
    String   time=df.format(date);
    System.out.println(time);

    4.計(jì)算一年中的第幾星期

    (1)計(jì)算某一天是一年中的第幾星期
    Calendar   cal=Calendar.getInstance();
    cal.set(Calendar.YEAR,   2006);
    cal.set(Calendar.MONTH,   1);
    cal.set(Calendar.DAY_OF_MONTH,   3);
    int   weekno=cal.get(Calendar.WEEK_OF_YEAR);

    (2)計(jì)算一年中的第幾星期是幾號(hào)
    SimpleDateFormat   df=new   SimpleDateFormat("yyyy-MM-dd");
    Calendar   cal=Calendar.getInstance();
    cal.set(Calendar.YEAR,   2006);
    cal.set(Calendar.WEEK_OF_YEAR,   1);
    cal.set(Calendar.DAY_OF_WEEK,   Calendar.MONDAY);
    System.out.println(df.format(cal.getTime()));
    輸出:
    2006-01-02

    5.add()和roll()的用法(不太常用)

    (1)add()方法
    SimpleDateFormat   df=new   SimpleDateFormat("yyyy-MM-dd");
    Calendar   cal=Calendar.getInstance();
    cal.set(Calendar.YEAR,   2006);
    cal.set(Calendar.MONTH,   1);
    cal.set(Calendar.DAY_OF_MONTH,   3);
    cal.add(Calendar.DATE,   -4);
    Date   date=cal.getTime();
    System.out.println(df.format(date));
    cal.add(Calendar.DATE,   4);
    date=cal.getTime();
    System.out.println(df.format(date));
    輸出:
            2006-08-30
            2006-09-03
    (2)roll方法
    cal.set(Calendar.YEAR,   2006);
    cal.set(Calendar.MONTH,   1);
    cal.set(Calendar.DAY_OF_MONTH,   3);
    cal.roll(Calendar.DATE,   -4);
    date=cal.getTime();
    System.out.println(df.format(date));
    cal.roll(Calendar.DATE,   4);
    date=cal.getTime();
    System.out.println(df.format(date));
    輸出:
            2006-09-29
            2006-09-03
    可見,roll()方法在本月內(nèi)循環(huán),一般使用add()方法;

    6.計(jì)算兩個(gè)任意時(shí)間中間的間隔天數(shù)(這個(gè)比較常用)
    (1)傳進(jìn)Calendar對(duì)象
            public   int   getIntervalDays(Calendar   startday,Calendar   endday)...{              
                    if(startday.after(endday))...{
                            Calendar   cal=startday;
                            startday=endday;
                            endday=cal;
                    }        
                    long   sl=startday.getTimeInMillis();
                    long   el=endday.getTimeInMillis();
                 
                    long   ei=el-sl;                      
                    return   (int)(ei/(1000*60*60*24));
            }
    (2)傳進(jìn)Date對(duì)象

            public   int   getIntervalDays(Date   startday,Date   endday)...{                
                    if(startday.after(endday))...{
                            Date   cal=startday;
                            startday=endday;
                            endday=cal;
                    }                
                    long   sl=startday.getTime();
                    long   el=endday.getTime();              
                    long   ei=el-sl;                      
                    return   (int)(ei/(1000*60*60*24));
            }
    (3)改進(jìn)精確計(jì)算相隔天數(shù)的方法
            public   int   getDaysBetween   (Calendar   d1,   Calendar   d2)   ...{
                    if   (d1.after(d2))   ...{  
                            java.util.Calendar   swap   =   d1;
                            d1   =   d2;
                            d2   =   swap;
                    }
                    int   days   =   d2.get(Calendar.DAY_OF_YEAR)   -   d1.get(Calendar.DAY_OF_YEAR);
                    int   y2   =   d2.get(Calendar.YEAR);
                    if   (d1.get(Calendar.YEAR)   !=   y2)   ...{
                            d1   =   (Calendar)   d1.clone();
                            do   ...{
                                    days   +=   d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到當(dāng)年的實(shí)際天數(shù)
                                    d1.add(Calendar.YEAR,   1);
                            }   while   (d1.get(Calendar.YEAR)   !=   y2);
                    }
                    return   days;
            }
    注意:通過上面的方法可以衍生出求任何時(shí)間,如要查出郵箱三周之內(nèi)收到的郵件(得到當(dāng)前系統(tǒng)時(shí)間-再得到三周前時(shí)間)用收件的時(shí)間去匹配   最好裝化成   long去比較
    如:1年前日期(注意毫秒的轉(zhuǎn)換)
          java.util.Date   myDate=new   java.util.Date();
          long   myTime=(myDate.getTime()/1000)-60*60*24*365;
          myDate.setTime(myTime*1000);
          String   mDate=formatter.format(myDate);

    7.   String   和   Date   ,Long   之間相互轉(zhuǎn)換   (最常用)

    字符串轉(zhuǎn)化成時(shí)間類型(字符串可以是任意類型,只要和SimpleDateFormat中的格式一致即可)
    通常我們?nèi)r(shí)間跨度的時(shí)候,會(huì)substring出具體時(shí)間--long-比較

    java.text.SimpleDateFormat   sdf   =   new   java.text.SimpleDateFormat("M/dd/yyyy   hh:mm:ss   a",java.util.Locale.US);
    java.util.Date   d   =   sdf.parse("5/13/2003   10:31:37   AM");
    long   dvalue=d.getTime();
    SimpleDateFormat   formatter   =   new   SimpleDateFormat("yyyy-MM-dd   HH:mm:ss");
    String   mDateTime1=formatter.format(d);

    8.   通過時(shí)間求時(shí)間

    年月周求日期
    SimpleDateFormat   formatter2   =   new   SimpleDateFormat("yyyy-MM   F   E");
    java.util.Date   date2=   formatter2.parse("2003-05   5   星期五");
    SimpleDateFormat   formatter3   =   new   SimpleDateFormat("yyyy-MM-dd");
    String   mydate2=formatter3.format(date2);

    求是星期幾
    mydate=   myFormatter.parse("2001-1-1");
    SimpleDateFormat   formatter4   =   new   SimpleDateFormat("E");
    String   mydate3=formatter4.format(mydate);

    9.   java   和   具體的數(shù)據(jù)庫(kù)結(jié)合

    在開發(fā)web應(yīng)用中,針對(duì)不同的數(shù)據(jù)庫(kù)日期類型,我們需要在我們的程序中對(duì)日期類型做各種不同的轉(zhuǎn)換。若對(duì)應(yīng)數(shù)據(jù)庫(kù)數(shù)據(jù)是oracle的Date類型,即 只需要年月日的,可以選擇使用java.sql.Date類型,若對(duì)應(yīng)的是MSsqlserver   數(shù)據(jù)庫(kù)的DateTime類型,即需要年月日時(shí)分秒的,選擇java.sql.Timestamp類型
    你可以使用dateFormat定義時(shí)間日期的格式,轉(zhuǎn)一個(gè)字符串即可

    class   Datetest{
    *method   將字符串類型的日期轉(zhuǎn)換為一個(gè)timestamp(時(shí)間戳記java.sql.Timestamp)
    *@param   dateString   需要轉(zhuǎn)換為timestamp的字符串
    *@return   dataTime   timestamp

    public   final   static   java.sql.Timestamp   string2Time(String   dateString)
    throws   java.text.ParseException   {
    DateFormat   dateFormat;
    dateFormat   =   new   SimpleDateFormat("yyyy-MM-dd   kk:mm:ss.SSS",   Locale.ENGLISH);//設(shè)定格式
    //dateFormat   =   new   SimpleDateFormat("yyyy-MM-dd   kk:mm:ss",   Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date   timeDate   =   dateFormat.parse(dateString);//util類型
    java.sql.Timestamp   dateTime   =   new   java.sql.Timestamp(timeDate.getTime());//Timestamp類型,timeDate.getTime()返 回一個(gè)long型
    return   dateTime;
    }

    *method   將字符串類型的日期轉(zhuǎn)換為一個(gè)Date(java.sql.Date)
    *@param   dateString   需要轉(zhuǎn)換為Date的字符串
    *@return   dataTime   Date

    public   final   static   java.sql.Date   string2Date(String   dateString)
    throws   java.lang.Exception   {
    DateFormat   dateFormat;
    dateFormat   =   new   SimpleDateFormat("yyyy-MM-dd",   Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date   timeDate   =   dateFormat.parse(dateString);//util類型
    java.sql.Date   dateTime   =   new   java.sql.Date(timeDate.getTime());//sql類型
    return   dateTime;
    }

    public   static   void   main(String[]   args){
    Date   da   =   new   Date();
    注意:這個(gè)地方da.getTime()得到的是一個(gè)long型的值
    System.out.println(da.getTime());

    由日期date轉(zhuǎn)換為timestamp

    第一種方法:使用new   Timestamp(long)
    Timestamp   t   =   new   Timestamp(new   Date().getTime());
    System.out.println(t);

    第二種方法:使用Timestamp(int   year,int   month,int   date,int   hour,int   minute,int   second,int   nano)
    Timestamp   tt   =   new   Timestamp(Calendar.getInstance().get(
                Calendar.YEAR)   -   1900,   Calendar.getInstance().get(
                Calendar.MONTH),   Calendar.getInstance().get(
                Calendar.DATE),   Calendar.getInstance().get(
                Calendar.HOUR),   Calendar.getInstance().get(
                Calendar.MINUTE),   Calendar.getInstance().get(
                Calendar.SECOND),   0);
    System.out.println(tt);

    try   {
    String   sToDate   =   "2005-8-18";//用于轉(zhuǎn)換成java.sql.Date的字符串
                String   sToTimestamp   =   "2005-8-18   14:21:12.123";//用于轉(zhuǎn)換成java.sql.Timestamp的字符串
                Date   date1   =   string2Date(sToDate);
                Timestamp   date2   =   string2Time(sToTimestamp);
    System.out.println("Date:"+date1.toString());//結(jié)果顯示
    System.out.println("Timestamp:"+date2.toString());//結(jié)果顯示
    }catch(Exception   e)   {
    e.printStackTrace();
    }
    }
    }  

    posted on 2010-05-11 14:31 黑螞蟻 閱讀(561) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    路在腳下,此刻,出發(fā)。

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国外亚洲成AV人片在线观看| 日韩免费高清视频网站| 国产免费午夜a无码v视频| 亚洲色成人四虎在线观看| 日韩免费一区二区三区| 国产AV无码专区亚洲AV蜜芽| 亚洲成av人在片观看| 国产免费久久精品99久久| 亚洲国产成人精品女人久久久| 一级人做人爰a全过程免费视频| 久久精品国产精品亚洲人人| www成人免费观看网站| 亚洲AV美女一区二区三区| 黄+色+性+人免费| 羞羞视频免费观看| 国产亚洲成AV人片在线观黄桃| 88xx成人永久免费观看| 亚洲日本乱码一区二区在线二产线| 毛片免费在线播放| 成人免费夜片在线观看| 亚洲视频在线观看| 日韩高清免费观看| 免费看搞黄视频网站| 亚洲综合激情五月色一区| 久久精品国产精品亚洲人人| 最近中文字幕完整版免费高清| 亚洲国产午夜精品理论片在线播放| 亚洲不卡无码av中文字幕| 99在线热视频只有精品免费| 亚洲色大成WWW亚洲女子| 亚洲午夜久久久久妓女影院 | 毛片免费全部播放一级| 一区二区三区免费精品视频| 亚洲综合激情视频| 免费成人av电影| 国产精彩免费视频| 国产精品99爱免费视频| 亚洲熟妇少妇任你躁在线观看| 国产亚洲人成网站观看| 日本不卡在线观看免费v| 2022久久国产精品免费热麻豆|