浏览 4300 次
锁定老帖子 主题:J2ME 获取正确的时区
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-09
在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开发者来说都是透明的,在实际的开发过程中不影响具体的使用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |