android 解决Date.gettimezoneoffset已经废弃

今天,简单讲讲android如何解决Date.gettimezoneoffset已经废弃的问题。


这个问题,我在网上搜索了资料,竟然没有找到替代的函数。其实Date已经过时,导致这些资料毕竟少。后来我看了android的源码,终于找到了替代函数。这里记录一下。


frameDate = new Date();
m_timezoneOffset = frameDate.getTimezoneOffset() * 60000;  //计时时区的偏移时间


这个就是获取当前手机时区与标准时间的偏移时间(毫秒),这里可以看源码。

 */
@Deprecated
public int getTimezoneOffset() {
    int zoneOffset;
    if (cdate == null) {
        // Android-changed: Android specific time zone logic
        GregorianCalendar cal = new GregorianCalendar(fastTime);
        zoneOffset = (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET));
    } else {
        normalize();
        zoneOffset = cdate.getZoneOffset();
    }
    return -zoneOffset/60000;  // convert to minutes
}


其实底层还是使用了Calendar的函数,使用Calendar获取当前时区的毫秒减去标准时间的毫秒,然后除以60000,就是编译的分钟。替代也很简单,直接使用Calendar就可以。

calendar = Calendar.getInstance();
m_timezoneOffset = -(calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET));//计时时区的偏移时间(毫秒)


这个函数就没有过时的提示了。


android 解决Date.gettimezoneoffset已经废弃就讲完了。


就这么简单。



猜你喜欢

转载自blog.csdn.net/bzlj2912009596/article/details/79797796