在可可/ iPhone中将纪元时间转换为NSDate

Raj*_*aja 16 iphone cocoa nsdate

我有像123456789这样的纪元时间的价值,现在我想把它转换成NSDate可可框架.有人能告诉我吗?

谢谢

Jas*_*oco 51

文档是你的朋友!

NSDate* date = [NSDate dateWithTimeIntervalSince1970:123456789];
Run Code Online (Sandbox Code Playgroud)

  • 堆栈溢出是我更快的朋友. (17认同)

pfr*_*ank 7

由于这是一个很大的打击,将有所贡献.请注意,只需转换为NSDate即可将其置于UTC时区.然后,如果要将其显示给用户,则必须转换为您的时区,从使用目标c的转换纪录时间转换为具有良好时区的NSDate:

// Convert NSString to NSTimeInterval
NSTimeInterval seconds = [epochTime doubleValue];

// (Step 1) Create NSDate object
NSDate *epochNSDate = [[NSDate alloc] initWithTimeIntervalSince1970:seconds];
NSLog (@"Epoch time %@ equates to UTC %@", epochTime, epochNSDate);

// (Step 2) Use NSDateFormatter to display epochNSDate in local time zone
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"];
NSLog (@"Epoch time %@ equates to %@", epochTime, [dateFormatter stringFromDate:epochNSDate]);

// (Just for interest) Display your current time zone
NSString *currentTimeZone = [[dateFormatter timeZone] abbreviation];
NSLog (@"(Your local time zone is: %@)", currentTimeZone);
Run Code Online (Sandbox Code Playgroud)