iOS 时区获取问题

By admin in 亚洲必赢官网app on 2018年9月13日

  

时区缩写 UTC, CST, GMT, CEST 以及转换

UTC是协调世界时(Universal Time
Coordinated)英文缩写,是由国际无线电咨询委员会规定与引进,并由国际时间局(BIH)负责维持的因秒为根基之时间标度。UTC相当给本初子午线(即经度0度)上的平均太阳经常,过去曾经用格林威治平均时(GMT)来表示.北京时间比UTC时间早8钟头,以1999年1月1日0000UTC吧例,UTC时间是零点,北京时间为1999年1月1日早晨8点整。

 

GMT(Greenwich Mean Time)是格林尼治平时: 
出于地球轨道并非圆形,其运作速度又就地球与太阳之相距改变如果起转移,因此视太阳经常贫均匀性。视太阳日的长度同时亦被地球自转轴相对轨道面之倾斜度所影响。为正值如改上述的免统匀性,天文学家计算地球非圆形轨迹和极轴倾斜对视太阳经常的作用。平太阳经常便是负经修订后的观望太阳经常。在格林尼治子午线上之平太阳时名叫世界时(UT0),又被格林尼治平时(GMT)。
为了保协调世界时与世界经常(UT1)相差不见面超越0.9秒,有需要经常就会当协调世界时内添加刚还是负闰秒。因此协调世界时与国际原子时(TAI)之间会并发多平头秒的区别。位于巴黎之国际地球自转事务中央局(IERS)负责控制何时在闰秒。

也就是说,UTC 基本上等于GMT

 

CET

(英語:Central European
Time,CET)欧洲心时间举凡于世界标准时间(UTC)早一个钟头的时区名称之一。它被大部分欧洲邦与有北非国家采用。冬时光也UTC+1,夏季欧洲夏令时为UTC+2

 

CEST

欧洲正中夏令时间(Central European Summer
Time,简称CEST)比世界标准日(UTC)早两只小时之时区名称有。它于大部分欧洲邦与组成部分北非国家在夏使(UTC+2),冬季这些国家行使欧洲中时间(UTC+1)

时区在线转换工具网站  http://www.timebie.com/timezone/centraleuropeansummerbeijing.php 

 

 

CST

CST却又可表示如下 4 个不同之时区: 

Central Standard Time (USA) UTC-6:00 

Central Standard Time (Australia) UTC+9:30 
China Standard Time UTC+8:00 
Cuba Standard Time UTC-4:00  足见,CST可以而且代表美国,澳大利亚,中国,古巴四单邦之专业日。 也就是说,这个得基于使用的景来确定以的是哪个时区。

////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////

1. 专业的取时区的对方法

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

    NSInteger offset = [NSTimeZone localTimeZone].secondsFromGMT;

    offset = offset/3600;

    NSString *tzStr = [NSString stringWithFormat:@”%ld”,
(long)offset];

 取得的时区:(Asia/Shanghai (GMT+8)
offset 28800)

2.  截取 GMT 方法

    //获取当地的时区

    NSString *tzStr;

    NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];

    NSArray *zoneArray = [[NSString stringWithFormat:@”%@”,
localTimeZone] componentsSeparatedByString:@”GMT”];

    NSString *tempTZ = [NSString stringWithFormat:@”%@”,
zoneArray.lastObject];

    // eg: +8 去丢”+”, -8 传入全部, +0 / -0

    // – 1 ~ 12, + 1 ~ +12, 0

    if([tempTZ hasPrefix:@”+”]) {

        tzStr = [NSString stringWithFormat:@”%c”, [tempTZ
characterAtIndex:1]];

    }else  if([tempTZ hasPrefix:@”-“]){

        tzStr = [NSString stringWithFormat:@”%@”, [tempTZ
substringToIndex:2]];

    }else if([tempTZ hasPrefix:@”0″]) {

        tzStr = [NSString stringWithFormat:@”%@”, [tempTZ
substringToIndex:1]];

    }

得到的时区:
Europe/Berlin (CEST) offset 7200 (Daylight)

由有些时区非携带 GMT 格式吗故 “方法二 ”
不可行, 采用 “方法一”.

基于距离 0
时区偏差的秒数算有时区.**
 **

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 亚洲必赢手机官网 版权所有