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

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

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

    新的起點 新的開始

    快樂生活 !

    Calendar的使用(簡單)

    您可以使用Date來取得完整的日期時間顯示,但如果您想要單獨取得某個時間或日期資訊的話該如何?例如您想知道現在是5月的第幾天?

    您要使用Calendar類別,在這之前,您要先知道Calendar的一些方法取回的數字是對應于Calendar本身的常數,也就是說并不是您取回1 這個數字,就表示今天是星期一。

    想要取得現在的時間,首先使用Calendar的getInstance()取得一個Calendar的實例,例如:
    Calendar rightNow = Calendar.getInstance();
     

    如果現在您想知道現在是西元幾年,則可以使用get()方法并指定常數,例如:
    System.out.println(rightNow.get(Calendar.YEAR));
     

    如果現在是2005年,則上例會顯示2005的數字,依照這個例子,假設撰寫本文的時間是5月份,而您現在想使用程式取得現在的月份,則下例您可能會有些困惑:
    System.out.println(rightNow.get(Calendar.MONTH));
     

    程式會顯示4這個數字,而不是您預期的5,因為傳回的4并不是代表月份,而是對應于Calendar.MAY常數的值, Calendar在月份上的常數值從Calendar.JANUARY開始是0,到Calendar.DECEMBER的11,所以您如果想要顯示傳回值 的真正意涵,可以如下撰寫:
    String[] months = {"一月", "二月", "三月", "四月",
                        "五月", "六月", "七月", "八月",
                        "九月", "十月", "十一月", "十二月"};
           
    Calendar rightNow = Calendar.getInstance();
    System.out.println(months[rightNow.get(Calendar.MONTH)]);
     

    同樣的,如果您想要取得星期資訊,要記得常數從Calendar.SUNDAY是1,到Calendar.SATURDAY是7,由于對應的數并不是從0 開始,所以如果要使用如上的陣列來對應的話,第一個陣列值就不包括資訊,例如:
    String[] dayOfWeek = {"", "日", "一", "二",
                               "三", "四", "五", "六"};
           
    Calendar rightNow = Calendar.getInstance();
    System.out.println(dayOfWeek[
                         rightNow.get(Calendar.DAY_OF_WEEK)]);
     

    總之您要記得傳回的值是對應于Calendar的某個常數,會這樣設計的原因在于實際上英文中對于星期或月份并不附以數字上的意涵,如Sunday、 Monday等,幸而除了月份、星期之外,傳回的值都對應于真正的時間意涵,畢竟像西元、小時、分等等本身就是以數字表示。

    在取得一個Calendar的實例后,您可以使用setTime()方法給它一個Date物件,將之改變為Date目前的時間,例如:
    Calendar c = Calendar.getInstance();
    Date date = new Date(10000000000L);
    c.setTime(date);

    還可以使用add()方法,來改變Calendar的時間,例如:
    c.add(Calendar.MONTH, 1); // 目前時間加1個月
    c.add(Calendar.HOUR, 3); // 目前時間加3小時
    c.add(Calendar.YEAR, -2); // 目前時間減2年
    c.add(Calendar.DAY_OF_WEEK, 3); // 目前的時間加3天

    如果打算只針對日期中某個欄位加減,則可以使用roll()方法,例如:
    c.roll(Calendar.MONTH, 10); // 只增加月的欄位值為10個月

    在上例中,假設是2006/10/1,則執行過后的Calendar實例,其中的時間將是2006/8/1,也就是只改變月份的欄位。

    posted on 2007-10-11 13:34 advincenting 閱讀(568) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    公告

    Locations of visitors to this pageBlogJava
  • 首頁
  • 新隨筆
  • 聯系
  • 聚合
  • 管理
  • <2007年10月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    統計

    常用鏈接

    留言簿(13)

    隨筆分類(71)

    隨筆檔案(179)

    文章檔案(13)

    新聞分類

    IT人的英語學習網站

    JAVA站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲影院在线观看| 久久久久亚洲AV成人无码| 精品久久久久久亚洲精品| 国内精品免费麻豆网站91麻豆| 久久青草亚洲AV无码麻豆| a级片免费观看视频| 亚洲国产日韩在线视频| 免费91麻豆精品国产自产在线观看| 久久久青草青青亚洲国产免观| 日本高清免费观看| 亚洲视频在线观看网站| 无码国产精品一区二区免费| 亚洲sss综合天堂久久久| 影音先锋在线免费观看| 深夜福利在线视频免费| 亚洲乳大丰满中文字幕| 久久免费看少妇高潮V片特黄| 亚洲五月激情综合图片区| 麻豆国产精品免费视频| 亚洲欧洲精品成人久久曰| 免费a级毛片永久免费| 免费无码又爽又刺激高潮软件| 亚洲大片在线观看| 永久免费AV无码国产网站| 久久久久亚洲精品无码网址色欲| 亚洲成AV人网址| 免费国产黄网站在线观看 | 日韩精品成人无码专区免费| 亚洲日韩精品国产3区| 亚洲国产成人精品久久久国产成人一区二区三区综| 精品亚洲av无码一区二区柚蜜| 国产亚洲一区区二区在线| 最近中文字幕2019高清免费| 亚洲无人区码一二三码区别图片| 亚洲精品国产电影| 99国产精品免费视频观看| 亚洲AV无码资源在线观看| 亚洲日韩v无码中文字幕| 啦啦啦中文在线观看电视剧免费版| 无码精品人妻一区二区三区免费| 亚洲视频在线观看|