<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 騎豬闖天下 閱讀(10414) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产免费阿v精品视频网址| 成人精品综合免费视频| 2015日韩永久免费视频播放| 亚洲精品成人无限看| 亚洲天堂免费在线视频| 中文字幕一精品亚洲无线一区| 特级av毛片免费观看| 国产成人精品日本亚洲专区| 乱人伦中文视频在线观看免费| 又粗又硬免费毛片| 一级做a免费视频观看网站| 77777亚洲午夜久久多人| 久久免费线看线看| 亚洲毛片在线观看| 18pao国产成视频永久免费| 亚洲日本视频在线观看| 女人毛片a级大学毛片免费| 亚洲AV日韩AV永久无码色欲| 亚洲国产精品无码久久久久久曰| 一级人做人a爰免费视频| 亚洲午夜视频在线观看| 国产福利在线免费| 国产精品久久亚洲一区二区| 国产亚洲美女精品久久久| 久久精品免费视频观看| 亚洲丝袜中文字幕| 四虎国产精品免费视| 97在线免费视频| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲国产高清视频| 无码av免费毛片一区二区| 亚洲av日韩综合一区久热| 久久久久亚洲精品无码网址| 中国xxxxx高清免费看视频| 亚洲AV无码一区二区三区牲色| 亚洲午夜精品一级在线播放放| 无码精品人妻一区二区三区免费看 | 91青青国产在线观看免费| 亚洲欧洲精品成人久久曰| 亚洲中文字幕无码久久2017| 国内精品乱码卡1卡2卡3免费|