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

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

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

    騎豬闖天下

    J2ME隨筆,記錄成長的腳步

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    [J2ME-原創] 時區TimeZone和時間

    實現時間的代碼如下:

        private int minute = 0, hour = 0,second = 0;
        
    private
     String strminute, strhour, strsecond;
       
    /**
        * 畫時間-
        * 
    @param focusTemp
        * 
    @param
     gr
        
    */

       
    public void drawTime(Graphics gr) {
           Calendar cal  
    =
     Calendar.getInstance();    

               second 
    =
    cal.get(Calendar.SECOND);        
            minute 
    =
     cal.get(Calendar.MINUTE);
            hour 
    =
     cal.get(Calendar.HOUR_OF_DAY);    
            
            strsecond 
    =
     Integer.toString(second);        
            strminute 
    =
     Integer.toString(minute);
            strhour 
    =
     Integer.toString(hour);
            
            
    if(second<10
    )
                strsecond
    ="0"+
    strsecond;
            
    if(minute<10
    )
                strminute
    ="0"+
    strminute;
            
    if(hour<10
    )
                strhour
    ="0"+
    strhour;

            Font aa
    =
    gr.getFont();
            gr.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
            gr.setColor(
    0xFFD700
    );
            gr.drawString(strhour 
    + ":" + strminute , SCREEN_WIDTH-5060
    );
            gr.setFont(aa);
       }

    一般情況下,使用這些就足夠了。

    如果更深一步探索,需要對時區控制的話,見下面:
    1.這樣獲取的時間,無論電腦上調試時還是在真機上,顯示的都是一樣的
    TimeZone china=TimeZone.getTimeZone("GMT+08:00");
            Calendar cal1  
    =
     Calendar.getInstance(china);    
            
    int second =
    cal1.get(Calendar.SECOND);        
            
    int minute =
     cal1.get(Calendar.MINUTE);
            
    int hour =
     cal1.get(Calendar.HOUR_OF_DAY);    
            
            String strsecond 
    =
     Integer.toString(second);        
            String strminute 
    =
     Integer.toString(minute);
            String strhour 
    =
     Integer.toString(hour);
            System.out.println(
    "北京時間 "+strhour + ":" + strminute +":"+strsecond);//GMT+08:00

            

    TimeZone就是對時區的控制,

    在Eclipse開發時,如果不設置時區的話,用Calendar獲取的時間是默認的格林威治標準時間
    在Eclipse開發時,如果設置時區的話,    用Calendar獲取的時間是設置的那個時區的時間

    舉例如下:
    A>. 社區的設置
       //獲得實際手機使用區域的默認時區
       TimeZone defaultZone = TimeZone.getDefault();
       
    //獲得默認時區對象的ID標識

       System.out.println(defaultZone.getID());//UTC
            
       
    //取得中國的時區

            TimeZone china=TimeZone.getTimeZone("GMT+08:00");
            System.out.println(china.getID());
    //GMT+08:00

    B >. 時區不同,時間的不同

            TimeZone china=TimeZone.getTimeZone("GMT+08:00");
            System.out.println(china.getID());
    //GMT+08:00

            prompt3=china.getID();
            
            Calendar cal1  
    =
     Calendar.getInstance(china);    
            
    int second =
    cal1.get(Calendar.SECOND);        
            
    int minute =
     cal1.get(Calendar.MINUTE);
            
    int hour =
     cal1.get(Calendar.HOUR_OF_DAY);    
            
            String strsecond 
    =
     Integer.toString(second);        
            String strminute 
    =
     Integer.toString(minute);
            String strhour 
    =
     Integer.toString(hour);
            System.out.println(
    "東八時區ID"+prompt3);//GMT+08:00

            System.out.println("北京時間 "+strhour + ":" + strminute +":"+strsecond);//
        
            
            
            TimeZone defatime 
    =
    TimeZone.getDefault();
            System.out.println(defatime.getID());
    //GMT+08:00

            prompt4=defatime.getID();
            
            Calendar cal2  
    =
     Calendar.getInstance(defatime);    
            second 
    =
    cal2.get(Calendar.SECOND);        
            minute 
    =
     cal2.get(Calendar.MINUTE);
            hour 
    =
     cal2.get(Calendar.HOUR_OF_DAY);    
            
            strsecond 
    =
     Integer.toString(second);        
            strminute 
    =
     Integer.toString(minute);
            strhour 
    =
     Integer.toString(hour);
            System.out.println(
    "默認時區ID"+prompt4);//UTC

            System.out.println("默認時間 "+strhour + ":" + strminute +":"+strsecond);//
    這兩個時間,在手機上顯示的是一樣的,但是在Eclipse開發時,是相差8個小時的。

    應用:
    在電腦上的模擬器上,正因為時區id不同,可以作為簡單的反模擬器使用的一個方法,只要時區id不同,就不然程序啟動。

    2.API中的使用方法:
    返回 TimeZonejava.util 中的方法
    static TimeZone TimeZone.getDefault()
              獲取此主機的默認 TimeZone
     TimeZone Calendar.getTimeZone()
              獲得時區。
     TimeZone GregorianCalendar.getTimeZone()
               
    static TimeZone TimeZone.getTimeZone(String ID)
              獲取給定 ID 的 TimeZone
     

    參數類型為 TimeZonejava.util 中的方法
    static Calendar Calendar.getInstance(TimeZone zone)
              使用指定時區和默認語言環境獲得一個日歷。
    static Calendar Calendar.getInstance(TimeZone zone, Locale aLocale)
              使用指定時區和語言環境獲得一個日歷。
     boolean TimeZone.hasSameRules(TimeZone other)
              如果此區域和另一個區域具有相同的規則和偏移量,也就是說,如果此區域只可能在 ID 上與另一個區域不同,則返回 true。
     boolean SimpleTimeZone.hasSameRules(TimeZone other)
              如果此時區與另一時區具有相同的規則和偏移量,則返回 true
    static void TimeZone.setDefault(TimeZone zone)
              設置由 getDefault 方法返回的 TimeZone
     void Calendar.setTimeZone(TimeZone value)
              使用給定的時區值來設置時區。
     void GregorianCalendar.setTimeZone(TimeZone zone)
               
     

    參數類型為 TimeZonejava.util 中的構造方法
    Calendar(TimeZone zone, Locale aLocale)
              構造一個帶有指定時區和語言環境的 Calendar。
    GregorianCalendar(TimeZone zone)
              在具有默認語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar
    GregorianCalendar(TimeZone zone, Locale aLocale)
              在具有給定語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar



    3.TimeZone時區的擴展知識

    java.util.TimeZone,

    API簡述:

    TimeZone
    表示時區偏移量,也可以計算夏令時。

    通常,使用 getDefault 獲取 TimeZonegetDefault 基于程序運行所在的時區創建 TimeZone。例如,對于在日本運行的程序,getDefault 基于日本標準時間創建 TimeZone 對象。

    也可以用 getTimeZone 及時區 ID 獲取 TimeZone 。例如美國太平洋時區的時區 ID 是 "America/Los_Angeles"。因此,可以使用下面語句獲得美國太平洋時間 TimeZone 對象:

     TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
    
    可以使用 getAvailableIDs 方法來對所有受支持的時區 ID 進行迭代。可以選擇受支持的 ID 來獲得 TimeZone。如果想要的時區無法用受支持的 ID 之一表示,那么可以指定自定義時區 ID 來生成 TimeZone。自定義時區 ID 的語法是:
     CustomID:
             GMT Sign Hours : Minutes
    GMT Sign Hours Minutes
    GMT Sign Hours
    Sign: 下面之一
    + -
    Hours:
    Digit
    Digit Digit
    Minutes:
    Digit Digit
    Digit: 下面之一
    0 1 2 3 4 5 6 7 8 9
    
    Hours 必須在 0 至 23 之間,Minutes 必須在 00 至 59 之間。例如,"GMT+10" 和 "GMT+0010" 分別意味著比 GMT 提前 10 小時和 10 分鐘。

    格式是與區域無關的,并且數字必須取自 Unicode 標準的 Basic Latin 塊。沒有夏令時轉換安排可以用自定義時區 ID 指定。如果指定的字符串與語法不匹配,就使用 "GMT"

    當創建一個 TimeZone 時,指定的自定義時區 ID 采用下面的語法進行標準化:

     NormalizedCustomID:
             GMT Sign TwoDigitHours : Minutes
    Sign: 下面之一
    + -
    TwoDigitHours:
    Digit Digit
    Minutes:
    Digit Digit
    Digit: 下面之一
    0 1 2 3 4 5 6 7 8 9
    
    例如,TimeZone.getTimeZone("GMT-8").getID() 返回 "GMT-08:00"。
    GMT簡介:

    GMT(Greenwich Mean Time)是格林尼治平時:

      由于地球軌道并非圓形,其運行速度又隨著地球與太陽的距離改變而出現變化,因此視太陽時欠缺均勻性。視太陽日的長度同時亦受到地球自轉軸相對軌道面的傾斜度所影響。為著要糾正上述的不均勻性,天文學家計算地球非圓形軌跡與極軸傾斜對視太陽時的效應。平太陽時就是指經修訂后的視太陽時。在格林尼治子午線上的平太陽時稱為世界時(UT0),又叫格林尼治平時(GMT)。

      格林尼治標準時間

      格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位于倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經線。

      理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能和實際的太陽時相差16分鐘。

      地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間——協調世界時(UTC)——由原子鐘提供。

      自1924年2月5日開始,格林尼治天文臺每隔一小時會向全世界發放調時信息。

      中文維基百科的編輯歷史記錄時間,采用的就是格林尼治標準時間。
     

    [End]  騎豬闖天下

    posted on 2010-04-14 15:59 騎豬闖天下 閱讀(10407) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久国产亚洲精品| 边摸边吃奶边做爽免费视频网站| 欧美大尺寸SUV免费| 亚洲精品视频观看| 亚洲最大福利视频网站| 亚洲AV第一页国产精品| 久久亚洲国产成人亚| 亚洲成av人在线视| 亚洲AV区无码字幕中文色| 亚洲av日韩综合一区在线观看| 亚洲av无码不卡一区二区三区| 亚洲国产精彩中文乱码AV| 成人网站免费大全日韩国产| 精品国产日韩久久亚洲| 亚洲成年人在线观看| 精品久久久久亚洲| 亚洲人xxx日本人18| 国产午夜亚洲精品国产| 亚洲AV无码片一区二区三区| 亚洲国产美女视频| 亚洲国产福利精品一区二区| 亚洲国产精品综合久久久| 亚洲国产成人精品激情| 亚洲av无码专区国产不乱码| 黄色免费网址在线观看| 成人无码视频97免费| 中国人xxxxx69免费视频| 国精无码欧精品亚洲一区| 亚洲成a人片在线观看精品| 亚洲电影在线免费观看| 亚洲一卡2卡3卡4卡5卡6卡| 久久亚洲精品11p| 国产精品1024在线永久免费 | 亚洲国产精品国自产电影| 亚洲视频在线观看| 亚洲色无码国产精品网站可下载| 免费在线观看亚洲| 最新国产乱人伦偷精品免费网站| 国产V亚洲V天堂无码| 亚洲爆乳无码一区二区三区| 久久亚洲AV无码精品色午夜麻|