iPhone Dev: Работаете со временем Unix? - PullRequest
2 голосов
/ 01 ноября 2009

Я на самом деле работаю с fbconnect и пытаюсь получить Unix-время, которое представляет месяц назад. Я действительно запутался в этом с 1970 года. Потому что какое-то тело дает мне точку в правильном направлении?

1 Ответ

6 голосов
/ 01 ноября 2009

В эпоху Unix время «0» - это полночь 1 января 1970 года. С тех пор каждую секунду добавляется еще одна секунда; время, когда я пишу это сейчас:

>>> import time
>>> time.time()
1257023557.94208

Большинство систем обмениваются данными с использованием эпохи Unix, потому что это простой, де-факто стандарт и допускающий целочисленную арифметику. Вы можете получить NSTimeInterval, представляющий длительность, начиная с эпохи, из NSDate, например:

NSTimeInterval timestamp = [[NSDate date] timeIntervalSince1970];

NSTimeInterval - это просто двойное число. Если вам нужно целое число, которое, как я думаю, нужно fbconnect, просто конвертируйте его (не проверено):

NSString *strtimestamp = [NSString stringWithFormat:"%u", [timestamp unsignedIntegerValue]];

Помните, это просто счет. Вы можете вычесть час, вычтя 3600 (60 * 60), добавить день, добавив 86400 (24 * 60 * 60) и т. Д .; однако в вашем случае лучше начать с NSDate, представляющего конкретное время, которое вы хотите, и позволяющего библиотеке выполнять арифметику за вас.

NSDate, вероятно, просто обертка вокруг этих временных отметок.

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