时间格式和时区

/*

G:        公元时代,例如AD公元

yy:    年的后2位

yyyy:    完整年

MM:    月,显示为1-12,带前置0

MMM:    月,显示为英文月份简写,如 Jan

MMMM:    月,显示为英文月份全称,如 Janualy

dd:    日,2位数表示,如02

d:        日,1-2位显示,如2,无前置0

EEE:    简写星期几,如Sun

EEEE:    全写星期几,如Sunday

aa:    上下午,AM/PM

H:        时,24小时制,0-23

HH:    时,24小时制,带前置0

h:        时,12小时制,无前置0

hh:    时,12小时制,带前置0

m:        分,1-2位

mm:    分,2位,带前置0

s:        秒,1-2位

ss:    秒,2位,带前置0

S:        毫秒

Z:        GMT(时区)

//任何NSTimeZone对象所代表的时区都是相对于GMT的, iOS中的时间类NSDate所获取到的时间, 都是相对于GMT的.

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];

*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容