<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 1000部免费啪啪十八未年禁止观看| 成人国产精品免费视频| 在线看无码的免费网站| 久久精品国产亚洲AV麻豆王友容 | 亚洲日韩精品无码一区二区三区| 日韩亚洲综合精品国产| 国产jizzjizz视频全部免费| 最新亚洲人成无码网站| 亚洲国产成人精品久久久国产成人一区二区三区综 | 日韩精品亚洲人成在线观看 | 日韩免费无码一区二区三区 | 日韩不卡免费视频| 中文字幕亚洲码在线| 国产一级理论免费版| 一个人免费观看视频在线中文 | 国产成人综合亚洲亚洲国产第一页| yellow视频免费在线观看| 亚洲成AV人片在线播放无码| 免费在线观看h片| 亚洲精品动漫免费二区| 精品亚洲成α人无码成α在线观看| 中文字幕免费在线看电影大全 | 在线永久免费的视频草莓| 亚洲美国产亚洲AV| 中文字幕亚洲综合久久男男| 无码AV片在线观看免费| 亚洲国产日韩精品| 亚洲一区二区三区免费| 最新黄色免费网站| 免费人成动漫在线播放r18 | 婷婷久久久亚洲欧洲日产国码AV | 深夜国产福利99亚洲视频| a视频免费在线观看| 亚洲中文无码a∨在线观看| 国产又粗又长又硬免费视频| 91精品全国免费观看青青| 亚洲日韩国产精品乱-久| 国产精品亚洲w码日韩中文| 午夜宅男在线永久免费观看网| 一级一黄在线观看视频免费| 亚洲第一成人在线|