конвертировать время эпохи в NSDate в какао / iPhone - PullRequest
16 голосов
/ 09 апреля 2010

У меня есть значение времени эпохи, например, 123456789, теперь я хочу преобразовать это в NSDate в рамках какао. Кто-нибудь может показать мне?

спасибо

Ответы [ 2 ]

50 голосов
/ 09 апреля 2010

Документация твой друг!

NSDate* date = [NSDate dateWithTimeIntervalSince1970:123456789];
7 голосов
/ 09 октября 2013

Так как это высокий хит, собираюсь внести свой вклад. Обратите внимание, что простое преобразование в NSDate переведет его в часовой пояс UTC. Затем вам нужно конвертировать в ваш часовой пояс, если вы хотите отобразить его для пользователя, из Преобразовать время эпохи в NSDate с хорошим часовым поясом с Objective c :

// 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);
...