iOS 时区获取问题

By admin in 亚洲必赢官网app on 2018年10月15日

  

时区缩写 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 亚洲必赢手机官网 版权所有