[转]使用getTimer()获取的时间转换成Date不要忘记时区

本文解决了一个将getTimer()获取的毫秒数转换为具体时间的问题,并详细介绍了如何正确地加上时区偏移来获得准确的北京时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[url]http://blog.youkuaiyun.com/zlxluofeng/archive/2010/04/14/5486966.aspx[/url]

最近在转换getTimer()获取的数字时间转换成Date时遇到了个挺郁闷的问题,折腾了很久总算找到了问题的所在,在此记录下。

getTimer方法获取的时间是从1970年1月1日 0:0:0:000开始到当前所经过的毫秒数,在某些应用中可能需要的是这个值,而不是一个Date对象。如果想知道这个值所对应的具体时分秒,就得做一些转换,例如:

var time:Number = getTimer();
var ms:int = int(time % 1000); //毫秒
time /= 1000;
var ss:int = int(time % 60); // 秒
time /= 60;
var MM:int = int(time % 60); // 分
time /= 60;
var hh:int = int(time % 24); // 小时
// 转换日期略

但是在我转换小时的时候,每次得到的结果都不正确,我把getTimer获得的值使用计算器来计算依然不正确,郁闷了很久,突然想到咱们使用的是北京时间,所属东8区,应该在标准时间上加8小时,即"var hh:int = int(time % 24) + 8;" 最终结果正确。

时间不早了,睡觉!

补充:使用Date类的setTime()方法,可以把一个毫秒数填充到Date对象中,获取时间更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值