Я действительно работаю с fbconnect, и я пытаюсь получить unix-время, которое представляет месяц назад. Я очень смущен этим с 1970 года. Потому что какой-то орган дает мне точку в правильном направлении?iPhone Dev: Работа с временем unix?
ответ
С Unix epoch, время «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
, вероятно, всего лишь обертка вокруг этих временных меток.
Обратите внимание, что переход на летнее время, секунды прыжка и т. Д. Делают простое добавление и вычитание секунд проблематичным в этих случаях. Если ваше приложение не зависит от них, отлично, но если ему необходимо правильно их обработать, рекомендуется использовать библиотеку, которая имеет дело с ними. – ceejayoz
однако, как только вы выходите за пределы дней, когда выполняете арифметику календаря, все становится намного сложнее (разные дни в месяц, високосные годы, часовые пояса, летнее время). Используйте библиотечные процедуры, чтобы выяснить, когда в прошлом месяце. –
@ceejayoz: Нет, это не так. Временные метки Unix никогда не учитывали их, поэтому в «реальном времени» есть несколько раз, которые были представлены той же самой временной отметкой Unix (последняя в 2006 году, IIRC?). Дневная экономия также не учитывает временные метки Unix, так как они являются агностиками часовых поясов (это секунды с момента, не более того). Поэтому арифметика, которую я представляю, работает в каждом случае для временных меток Unix. –
- 1. Работа со временем в iPhone
- 2. Работа с датой и временем
- 3. Работа с плохо отформатированным временем
- 4. РАБОТА С UNIX ДАТА
- 5. Python: Работа со временем
- 6. Работа с летним временем с классом DateTime
- 7. Работа с SQL Server с точным временем
- 8. Работа с переменными в Unix
- 9. Работа со временем, в приложении клиент-сервер
- 10. Является ли UNIX временем универсальным
- 11. Работа со временем, датой, timedelta
- 12. Unix текущее время Вычитание с фиксированным временем
- 13. PHP-работа с датой и временем
- 14. Работа с датами и временем в R
- 15. Java - Работа с датой/временем в J2ME
- 16. iPhone - Работа с подпапкой
- 17. Работа со временем в R
- 18. iPhone веб-DEV с jqTouch
- 19. iPhone dev - проблема с @selector
- 20. Начало работы с iPhone dev
- 21. c/C++ - конвертировать между временем Unix и «григорианским временем»
- 22. Работа с изменениями схемы между dev & prod
- 23. iPhone dev multi threaded, NSAutoreleasePool
- 24. iPhone Dev: проведите UITableCell
- 25. iPhone dev - viewDidUnload subviews
- 26. iPhone dev view swapping
- 27. Facebook SDK (iPhone dev)
- 28. зарегистрируйтесь iPhone dev
- 29. Iphone DEV - ViewDidUnload
- 30. Android dev time vs iPhone dev time
Какая часть 1970 года вас сбивает с толку? –
Извините, я в основном путаюсь, как представлять время с 1970 года или рассчитать его, но на мой вопрос был дан ответ. – TheGambler