iPhone: Как узнать дату и время из числа секунд? - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть время в секундах 1303093926, и я хочу получить дату и время как

Суббота, 09 октября 2010 18:14:50 + 0000

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

NSDate имеет метод преобразования:

double seconds = 1303093926;
NSTimeInterval timeInterval = (NSTimeInterval)seconds;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];

Затем можно использовать класс NSDateFormatter, чтобы преобразовать NSDate в строку в нужном формате.

0 голосов
/ 18 апреля 2011

NSDate имеет несколько методов для создания объектов даты из вторых значений.NSDate имеет четыре метода для выполнения именно того, что вы хотите:

  • + (id) dateWithTimeInterval: (NSTimeInterval) секунд sinceDate: (NSDate *) date : Если ваш номерсекунд основано на произвольной дате, вы должны использовать этот метод.

  • + (id) dateWithTimeIntervalSince1970: seconds : Если ваше количество секунд основано навремя с 1970 года, тогда вы будете использовать этот метод.

  • + (id) dateWithTimeIntervalSinceNow: (NSTimeInterval) секунд : если количество секунд относительно текущеговремя, используйте это.(Отрицательные секунды относятся к датам, предшествующим «сейчас».)

  • + (id) dateWithTimeIntervalSinceReferenceDate: (NSTimeInterval) секунд : если вы знаете, что ваше количество секундотносится к предварительно определенной «контрольной дате» (1 января 2001 г., GMT), тогда вам следует использовать этот метод.

Другой подход заключается в использовании NSDateComponents дляпостроить свой объект датыИз документации NSDateComponents:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:5];
[comps setYear:2004];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];

Вы можете сделать то же самое с вашим количеством секунд, используя основную арифметику для преобразования секунд в годы, месяцы, дни, часы, минуты и секунды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...