J2ME中的Calendar+Date+TimeZone

之前一直对日期/时间问题发愁,觉得总是有些问题不好处理.但今天理解之后就觉得没什么大不了了.顺便庆贺一下!!

首先,ME中的略去了很多类,包括从SE中保留而来的类方法.简单的一个例子就是:ME中没有SimpleDateFormat这个类,而这个类中的parse()方法简直就是处理日期/日间问题的一个亮点.我认为.所以又得放弃这个理念了,要从ME中想起!

不过,Calendar这个类的功能可以说基本上满足了ME中的所有处理日期/时间转换的问题了.开始我有两个问题一直想不通:1.假如我想在某个时间段产生一个像闹钟的例子.使用Timer+Date觉得不好,起码要解决一个millisecond问题,难道我要从GMT的 1970.1.1.0:00:000算起吗?不可取!于是又得从Calendar中搜索...幸好,其中有个方法set()来设定年,月,日,时,分,秒等等.从而可以直接用getTime()产生一个Date对象.于是就可以方便应用于TimerTask中schedule()中的Date参数了.这样第一个问题解决了.但要注意,这个返回的是+8的TimeZone(唉,怎么我试过几台机,WTK都不支持CST/CCT时区呀,真的麻烦),所以又得要-8才能将当前时间与它参考比较.因为单纯 new Date() 一个对象它是以默认GMT时区的,而系统又不支持CST(中国标准时间吧).才能真正可用.起初我没有注意,试了几下通过Calendar.getTime()与System.currentTimeMillis()比较才发现出来.

(起初我总是以为要经过其中的computeTime()/computeFields()方法将设定的东东重新compute才能生效,但这两方法是protected + abstract的,不好用哦.其实不然,它是处理通过指定数组一次性设定所有Fields的,呵呵, 这个问题闲了我又一会).

2.接下来这个问题就应运而生了,怎样计算一个指一个日子中究竟是星期几哟?之前问了一些网友,有的说得简单,用get(Calendar.DAY_OF_WEEK),但那时没注意,不过确实是这个方法简单;有的则提供了一个古典的算法,昏,不发理解,而且又要处理润年问题.Then ,用前一个方法最终是快捷的.当我在上述中设好日期后(此时可不用设置时间,因为在那一天星期几是不会变的,即使时差依然存在).然后应用get(Calendar.DAY_OF_WEEK)就OK了.快捷!!

好了,又是一上六点的早上,回家又要埋头学了,免了慢了就学得最好也没有意思.最近想设计一个像NOKIA 8210的OS,首先只想用到高级API(因为我只学到这里哦),然后不断学习就不断往那灌附加功能了.这个东东说起来也是有一定的"容量"的,因为要内嵌一些游戏,电话簿,个人设定,日历等.

祝大家学习愉快!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值