在时间的表达上,经常要使用到时区的概念,在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开发者来说都是透明的,在实际的开发过程中不影响具体的使用。