iOS - OC NSTimeZone 時區


前言

	@interface NSTimeZone : NSObject <NSCopying, NSSecureCoding>
  • NSTimeZone 表示時區信息。

1、NSTimeZone 時區的創建

	NSTimeZone *zone1 = [[NSTimeZone alloc] init];
	    
	// 根據時區名稱創建
	NSTimeZone *zone2 = [[NSTimeZone alloc] initWithName:@"America/Chicago"];
	NSTimeZone *zone3 = [NSTimeZone timeZoneWithName:@"America/Chicago"];
	    
	// 根據時區縮寫創建
	NSTimeZone *zone4 = [NSTimeZone timeZoneWithAbbreviation:@"EST"];
	    
	// 根據零時區的秒數偏移量創建
	NSTimeZone *zone5 = [NSTimeZone timeZoneForSecondsFromGMT:28800];

2、NSTimeZone 時區的設置

	// 設置默認的時區
	[NSTimeZone setDefaultTimeZone:[[NSTimeZone alloc] initWithName:@"America/Chicago"]];
	    
	NSTimeZone *systemZone = [NSTimeZone systemTimeZone];
	    
	// 本地時區可以被修改,而系統時區不能修改。
	NSTimeZone *localZone = [NSTimeZone localTimeZone];
	
	NSTimeZone *defaultZone = [NSTimeZone defaultTimeZone];
	    
	// NSCalendar 設置時區
	/*
		設置時區,設置為 GMT+8,即北京時間(+8)
	*/
	NSCalendar *calendar = [NSCalendar currentCalendar];
	    
	[calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CET"]];
	[calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+28800]];
	    
	// NSDateFormatter 設置時區
	NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
	    
	// 設置時區,設置為 GMT
	[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

3、NSTimeZone 時區的獲取

	// 獲取系統時區
	NSTimeZone *zone1 = [NSTimeZone systemTimeZone];
	    
	// 獲取本地時區
	NSTimeZone *zone2 = [NSTimeZone localTimeZone];
	    
	// 獲取默認時區
	NSTimeZone *zone3 = [NSTimeZone defaultTimeZone];

4、獲取時區的名稱

	// 獲取所有已知的時區名稱
	NSArray *zoneNames = [NSTimeZone knownTimeZoneNames];
	   
	NSTimeZone *zone = [NSTimeZone localTimeZone];
	    
	// 獲取指定時區的名稱
	NSString *strZoneName = [zone name];

5、獲取時區的縮寫

	// 獲取所有已知的時區縮寫
	NSDictionary *zoneAbbreviations = [NSTimeZone abbreviationDictionary];
	    
	NSTimeZone *zone = [NSTimeZone localTimeZone];
	    
	// 獲取指定時區的縮寫
	NSString *zoneAbbreviation1 = [zone abbreviation];
	
	// 獲取指定時間所在時區名稱縮寫
	NSString *zoneAbbreviation2 = [zone abbreviationForDate:[NSDate date]];

6、獲取與零時區的間隔秒數

	NSTimeZone *zone = [NSTimeZone localTimeZone];
	    
	// 獲取當前時區與零時區的間隔秒數
	NSInteger seconds1 = [zone secondsFromGMT];
	
	// 獲取指定時間所在時區與零時區的間隔秒數
	NSInteger seconds2 = [zone secondsFromGMTForDate:[NSDate date]];

7、時區差值轉換

	// 得到當前時間(世界標准時間 UTC/GMT)
	NSDate *date = [NSDate date];
	
	// 設置系統時區為本地時區
	NSTimeZone *zone = [NSTimeZone systemTimeZone];
	
	// 計算本地時區與 GMT 時區的時間差
	NSInteger interval = [zone secondsFromGMT];
	
	// 在 GMT 時間基礎上追加時間差值,得到本地時間
	date = [date dateByAddingTimeInterval:interval];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM