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已经废弃就讲完了。


就这么简单。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZoneGetter.java是一个用于获取Android设备时区的Java类。它提供了一种简便的方式来获取设备当前所在的时区。 这个类主要包含了以下几个方法: 1. `getCurrentTimeZone()`:这个方法返回一个字符串,表示设备当前所在的时区。例如,"Asia/Shanghai"表示中国上海的时区。 2. `getTimeZoneDisplayName()`:这个方法返回一个字符串,表示设备当前时区的显示名称。例如,"China Standard Time"表示中国标准时间。 3. `getTimeZoneOffset()`:这个方法返回一个整数,表示设备当前时区与UTC(协调世界时)之间的偏移量,单位为分钟。正值表示设备当前时区比UTC晚,负值表示早于UTC。例如,北京时间(中国上海的时区)比UTC晚8小时,所以偏移量为+480。 使用ZoneGetter.java可以轻松地获取设备当前的时区信息,这在开发Android应用程序中经常会用到。比如,如果你的应用程序需要根据用户所在的时区显示不同的内容或执行不同的操作,你可以使用ZoneGetter.java来获取用户的时区。 以获取当前时区为例,你可以在你的代码中使用以下代码: ```java String timeZone = ZoneGetter.getCurrentTimeZone(); Log.d("时区", timeZone); ``` 上述代码将获取当前设备的时区,并将其日志输出。你可以根据需要使用这个时区信息来进行后续的操作。 总之,ZoneGetter.java提供了一种方便的方式来获取Android设备的时区信息,帮助开发人员在应用程序中进行时区相关的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值