时区获取难点

  

时区缩写 UTC, CST, 卡那霉素T, CEST 以及调换

UTC是协调世界时(Universal Time
Coordinated)英文缩写,是由国际有线电咨委规定和推举,并由国际时间局(BIH)负责维持的以秒为底蕴的年月标度。UTC约等于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(氯洁霉素T)来表示.香江时间比UTC时间早8钟头,以壹玖九八年四月16日0000UTC为例,UTC时间是零点,新加坡时间为壹玖九玖年11月二10二十三日晚上八点整。

 

克林霉素T(格林wich Mean Time)是格林尼治平日: 
是因为地球轨道并非圆形,其运营速度又一气浑成地球与阳光的距离退换而产出转移,因而视太阳时不足均匀性。视太阳日的尺寸同时亦饱受地球自转轴相对轨道面包车型大巴倾斜度所影响。为着要改正上述的不均匀性,天史学家计算地球非圆形轨迹与极轴倾斜对视太阳时的法力。平太阳时正是指经修订后的视太阳时。在格林尼治子午线上的平太阳时名字为世界时(UT0),又叫格林尼治平时(克林霉素T)。
为了保险协调世界时与世界时(UT一)相差不会超越0.玖秒,有须要时便会在协调世界时内增加正或负闰秒。由此协调世界时与国际原申时(TAI)之间会油可是生若干整数秒的出入。位于法国首都的国际地球自转事务中心局(IE路虎极光S)负责调节哪一天插手闰秒。

相当于说,UTC 基本上等于地霉素T

 

CET

(英語:Central European
Time,CET)亚洲中段时间是比世界标准时间(UTC)早三个小时的时区名称之壹。它被许多欧洲国家和1些北非国家选取。冬季时间为UTC+一,夏季欧洲夏令时为UTC+二

 

CEST

北美洲个中夏令时间(Central European SummerTime,简称CEST)比世界标准时间(UTC)早多个小时的时区名称之壹。它被超过四分之贰澳大罗萨里奥联邦(Commonwealth of Australia)国家和局地北非国家在夏季选取(UTC+二),冬辰那个国家利用北美洲宗旨时间(UTC+1)

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

 

 

CST

CST却同时能够代表如下 四 个分歧的时区: 

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可以同时代表美利坚联邦合众国,澳大Madison(Australia),中夏族民共和国,古巴三个国家的标准时间。 也正是说,这么些要求依照使用的现象来规定使用的是哪些时区。

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

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

一. 规范的获取时区的不易方法

  [NSTimeZone resetSystemTimeZone]; // 重新载入参数手提式有线电话机系统的时区

    NSInteger offset = [NSTimeZone localTimeZone].secondsFromGMT;

    offset = offset/3600;

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

 获得的时区:(Asia/Shanghai (威斯他霉素T+八)
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 传入全体, +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)

鉴于有些时区非指引 青霉素T 格式吗故 “方法二 ”
不可行, 采用 “方法一”.

听新闻说距离 0
时区偏差的秒数算出时区.**
 **

相关文章