在J2ME 裡面獲取時間本地時間也是要花費點功夫的,下面看看我整理的一些資料,
如果
手機是行貨的話,那到正確的手機時間是沒問題的,水貨的話則需要做下手腳,上面的純粹是我個人的猜測,具體還是要看下,
具體還是要運行下才知道。下面看看這些東西吧
J2ME類庫中util包中縮減好多,貌似找不到獲取本地TimeZone的方法
嘗試下了如下代碼,但是輸出為GMT時間
TimeZone t = TimeZone.getTimeZone("GMT+08:00");//獲取東8區TimeZone
Clandar c = Calendar.getInstance( t );
String time = c.getTime().toString();
System.out.println(time);//輸出為GMT時間
其中GMT=08:00表示北京時間
看看更詳細的描述
在時間的表達上,經常要使用到時區的概念,在J2ME中關於這個概念,有一個專門的類——TimeZone類。
在地理上,地球被劃分為24個時區,中國北京時間屬於東八區,烏魯木齊時間屬於東六區,而程序中對於時間的默認實現是以倫敦時間為標准,這樣就產生了八個小時的時差,所以為了讓你的程序更加通用,J2ME的CLDC API中實現了時區類。
TimeZone類屬於
Java.util包,在J2ME中的該類是對於J2SE中TimeZone的簡化。該類是一個抽象類,使用時需要注意。
如果想獲得實際手機使用區域的默認時區,可以使用以下的代碼實現:
TimeZone defaultZone = TimeZone. getDefault();
例如你實際使用的手機在中國,則獲得是東八區,是其他區域的,則是其他區域的時區對象。
實際中,每個時區都有一個ID,使用這個ID來代表該時區。但是TimeZone在實現過程中,只實現了一部分,獲得可用的時區ID的代碼如下:
String[] listId = TimeZone. getAvailableIDs();
這樣就可以獲得手機對於時區ID的支持情況了。
當你獲得了默認的時區以後,也可以獲得該時區和倫敦時間的差異,其中timeZone是創建好的時區對象,使用的方法如下:
int offset = timeZone. getRawOffset();
獲得當前時區對象的ID標識可以使用如下方法獲得:
String id = timeZone.getID();
和J2SE中的TimeZone相比,J2ME中沒有提供該類的子類實現,而把對該類的實現交給了手機廠商進行實現,這些內容對於J2ME開發者來說都是透明的,在實際的開發過程中不影響具體的使用。