NSTimeZone方法屬性詳細(xì)介紹

NSTimeZone時(shí)區(qū)是一個(gè)地理名字,是為了克服各個(gè)地區(qū)或國(guó)家之間在使用時(shí)間上的混亂。

1.基本概念:

  1. GMT 0:00 格林威治標(biāo)準(zhǔn)時(shí)間; UTC +00:00 校準(zhǔn)的全球時(shí)間; CCD +08:00 中國(guó)標(biāo)準(zhǔn)時(shí)間。

  2. 夏時(shí)制,英文"DaylightSavingTime"。夏季時(shí)將時(shí)區(qū)內(nèi)的時(shí)間提前(一般為1小時(shí)),以節(jié)省資源,提高效率。使用夏時(shí)制期間,當(dāng)前時(shí)區(qū)相對(duì)于GMT的時(shí)間偏移量會(huì)發(fā)生變化。在某些應(yīng)用中可能需要考慮。

  3. 任何時(shí)區(qū)都以GMT為基準(zhǔn),即,任何NSTimeZone對(duì)象所代表的時(shí)區(qū)都是相對(duì)于GMT的,這里的相對(duì)性是NSTimeZone中最重要的屬性,我們稱之為當(dāng)前時(shí)區(qū)相對(duì)于GMT的偏移量。一旦知道了一個(gè)偏移量,便可以確定一個(gè)時(shí)區(qū)。在iOS中,偏移量是以"秒"為單位的.

  4. iOS中的時(shí)區(qū)表示方法:GMT+0800 GMT-0800。(+:東區(qū) -:西區(qū) 08:小時(shí)數(shù) 00:分鐘數(shù))。 GMT+0830就是指比GMT早8小時(shí)外加30分鐘的時(shí)區(qū)。

2.初始化方法

// 返回具有給定標(biāo)識(shí)符的時(shí)區(qū)
+ (nullable instancetype)timeZoneWithName:(NSString *)tzName;
// 返回具有給定標(biāo)識(shí)符的時(shí)區(qū),該標(biāo)識(shí)符的數(shù)據(jù)已使用給定數(shù)據(jù)進(jìn)行了初始化
+ (nullable instancetype)timeZoneWithName:(NSString *)tzName data:(nullable NSData *)aData;
// 使用給定的標(biāo)識(shí)符初始化時(shí)區(qū)
- (nullable instancetype)initWithName:(NSString *)tzName;
// 使用給定的標(biāo)識(shí)符和時(shí)區(qū)數(shù)據(jù)初始化時(shí)區(qū)
- (nullable instancetype)initWithName:(NSString *)tzName data:(nullable NSData *)aData;
// 返回與格林威治標(biāo)準(zhǔn)時(shí)間相差給定秒數(shù)的時(shí)區(qū)對(duì)象
+ (instancetype)timeZoneForSecondsFromGMT:(NSInteger)seconds;
// 返回由給定縮寫標(biāo)識(shí)的時(shí)區(qū)對(duì)象
+ (nullable instancetype)timeZoneWithAbbreviation:(NSString *)abbreviation;

3.分類"屬性"和方法:

// 系統(tǒng)當(dāng)前使用的時(shí)區(qū)
@property (class, readonly, copy) NSTimeZone *systemTimeZone;
// 清除為systemTimeZone屬性緩存的任何時(shí)區(qū)值
+ (void)resetSystemTimeZone;
// 當(dāng)前應(yīng)用的默認(rèn)時(shí)區(qū)。
@property (class, copy) NSTimeZone *defaultTimeZone;
// 跟蹤當(dāng)前系統(tǒng)時(shí)區(qū)的對(duì)象
@property (class, readonly, copy) NSTimeZone *localTimeZone;
// 返回一個(gè)字符串?dāng)?shù)組,其中列出了系統(tǒng)已知的所有時(shí)區(qū)的ID。
@property (class, readonly, copy) NSArray<NSString *> *knownTimeZoneNames;
// 自己設(shè)置時(shí)區(qū)ID
@property (class, copy) NSDictionary<NSString *, NSString *> *abbreviationDictionary;
// 返回一個(gè)字典,所有時(shí)區(qū)ID的簡(jiǎn)寫
+ (NSDictionary<NSString *, NSString *> *)abbreviationDictionary;
// 返回時(shí)區(qū)數(shù)據(jù)版本
@property (class, readonly, copy) NSString *timeZoneDataVersion ;
// 當(dāng)前時(shí)間與格林威治標(biāo)準(zhǔn)時(shí)間的差,以秒為單位
@property (readonly) NSInteger secondsFromGMT;
// 設(shè)置接收時(shí)區(qū)
@property (nullable, readonly, copy) NSString *abbreviation;
// 是否是夏令時(shí)
@property (readonly, getter=isDaylightSavingTime) BOOL daylightSavingTime;
// 夏令時(shí)偏移值
@property (readonly) NSTimeInterval daylightSavingTimeOffset; // for current instant
// 下一個(gè)夏令時(shí)日期
@property (nullable, readonly, copy) NSDate *nextDaylightSavingTimeTransition; // after current instant
// 時(shí)區(qū)的文字說明,包括名稱,縮寫,與GMT的時(shí)差以及當(dāng)前是否夏令時(shí)
@property (readonly, copy) NSString *description;
// 是否是指定時(shí)區(qū)
- (BOOL)isEqualToTimeZone:(NSTimeZone *)aTimeZone;
// 返回時(shí)區(qū)的本地化名稱
- (nullable NSString *)localizedName:(NSTimeZoneNameStyle)style locale:(nullable NSLocale *)locale;

4.夏時(shí)制方法

// 時(shí)區(qū)名稱
@property (readonly, copy) NSString *name;
 // 時(shí)區(qū)文件數(shù)據(jù)
@property (readonly, copy) NSData *data;

/// 夏時(shí)制方法
- (NSInteger)secondsFromGMTForDate:(NSDate *)aDate;
- (nullable NSString *)abbreviationForDate:(NSDate *)aDate;
- (BOOL)isDaylightSavingTimeForDate:(NSDate *)aDate;
- (NSTimeInterval)daylightSavingTimeOffsetForDate:(NSDate *)aDate;
- (nullable NSDate *)nextDaylightSavingTimeTransitionAfterDate:(NSDate *)aDate;

不清楚的可以查看蘋果官方文檔,附:蘋果官方文檔NSTimeZone鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容