<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站點

    優秀個人博客鏈接

    官網學習站點

    生活工作站點

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99久久久国产精品免费无卡顿| 一级毛片在播放免费| 大地资源中文在线观看免费版 | 嫩草在线视频www免费看| 亚洲成a人片在线观看日本麻豆| 亚洲精品又粗又大又爽A片| 99视频在线精品免费观看6| 亚洲欧洲日韩国产一区二区三区| 一级毛片不卡片免费观看| 亚洲成AV人在线观看天堂无码| jizz18免费视频| 国产成人亚洲精品91专区手机| 一区二区三区视频免费观看| 一本久到久久亚洲综合| 无人视频免费观看免费视频| 亚洲国产综合久久天堂| eeuss在线兵区免费观看| 亚洲欭美日韩颜射在线二| 久久午夜免费鲁丝片| 亚洲黄色在线观看| 美女视频黄a视频全免费| 狠狠色香婷婷久久亚洲精品| 在线精品免费视频| 猫咪免费人成在线网站| 国产精品亚洲一区二区三区在线 | 国产精品V亚洲精品V日韩精品| aa午夜免费剧场| 久久久久亚洲精品影视| av无码国产在线看免费网站 | 免费无码又爽又刺激毛片| 国产大陆亚洲精品国产| 亚洲最大AV网站在线观看| 最近中文字幕大全免费版在线 | 亚洲手机中文字幕| 毛片免费在线观看网站| 国产精品亚洲片在线花蝴蝶| 亚洲中文字幕无码专区| 99久久综合精品免费| 日韩亚洲产在线观看| 亚洲成片观看四虎永久| 久久国产精品免费观看|