J2ME 获取正确的时区
  vvb6bOG0D5hl 2023年11月19日 23 0


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开发者来说都是透明的,在实际的开发过程中不影响具体的使用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
vvb6bOG0D5hl