论坛首页 移动开发技术论坛

J2ME 获取正确的时区

浏览 4300 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-09  
http://www.3geye.net/?3/viewspace-309

在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开发者来说都是透明的,在实际的开发过程中不影响具体的使用。
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics