標籤:nat 速度 alt 相對 等於 eset integer 重設 sar
時區縮寫 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 時區偏差的秒數算出時區.
iOS 手機時區擷取問題