美文网首页
iOS 获取时区

iOS 获取时区

作者: 水煮杰尼龟 | 来源:发表于2018-05-22 17:50 被阅读54次

   最近做的项目要海外用,与设备交互,比如定时延时任务什么的,就不能只按照国内的时区来了,不然国外用着就炸了。

先摆上我最开始获取时区的方式:(突然感觉很chun --!)
-(NSString *)getTimezone
{
    NSTimeZone *localZone = [NSTimeZone localTimeZone];
    NSString *strZoneAbbreviation = [localZone abbreviation];
    NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z]" options:0 error:nil];
    strZoneAbbreviation = [regularExpression stringByReplacingMatchesInString:strZoneAbbreviation options:0 range:NSMakeRange(0, strZoneAbbreviation.length) withTemplate:@""];
    return strZoneAbbreviation;
}

上面的代码你会获取到这样的字符串 : +8 这种什么的。就是与0时区的差值,我这里是用正则的方式去掉了字母。
后来国外的客户用着一直有问题,然后我这边自己修改了手机时区测试了下,这种方式确实是有问题了。
打印一下所有已知的时区看看。

    NSArray *array=[NSTimeZone knownTimeZoneNames];
    [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSTimeZone *t=[[NSTimeZone alloc]initWithName:obj];
        NSLog(@"- %@",t.abbreviation);
    }];

你会发现如下的东西。


1.png
2.png

第一张图这种,去掉字母就没了。=-=
第二张图,如果直接把得到的字符串转整形也会有锅。
所以呢,还是用最标准的方式比较靠谱了。

获取当前时区与0时区的间隔秒数
    NSTimeZone *localZone = [NSTimeZone localTimeZone];
    NSInteger seconds= [localZone secondsFromGMT];

这就避免了上面的两个问题了。

相关文章

  • iOS 获取时区

       最近做的项目要海外用,与设备交互,比如定时延时任务什么的,就不能只按照国内的时区来了,不然国外用着就炸了。 ...

  • iOS swift 时间戳获取转换

    首先说明一下,在ios中获取到的时区是计算过夏令时的,比如:在以华盛顿(美国)为例,时区为西五区,获取后为西四区,...

  • 获取ios手机时区

    [NSTimeZone resetSystemTimeZone]; // 重置手机系统的时区 NSIntege...

  • ABAP时间的转换

    SAP数据库表中的时间是根据系统时区存储的,这里需要将时间转换成用户时区。首先获取系统时区: 然后获取用户时区: ...

  • swift5 Date

    获取当前时区时间~

  • 时区存取

    保存时区 接口名称:saveDeviceTimeZone方法 post 获取时区 接口名称: getDeviceT...

  • iOS 获取当前时间

    GMT:格林威治标准时间UTC:全球标准时间 获取当前GMT时间(英国) 获取当前时区(中国) 获取当前时区(中国...

  • 数据库配置

    1.时区配置 获取时区:show variables like '%time_zone%'; 设置为北京:set ...

  • 如何获取当前时区字符串

    1.获取当前时区的时间字符串 输出如下: ⚠️ [NSDate new]这种方式获取的时间是零时区时间。

  • NSDate

    创建时间: 时间增减: 时间戳: 日期比较: 设置日期格式: 获取所有时区名称: 设置时区: 将时区配置给date...

网友评论

      本文标题:iOS 获取时区

      本文链接:https://www.haomeiwen.com/subject/xeoxdftx.html