Получить текущую NSDate в формате отметки времени

83

У меня есть базовый метод, который получает текущее время и устанавливает его в виде строки. Однако как я могу заставить его отформатировать текущую дату и время в формате временных меток UNIX с 1970 года?

Вот мой код:

Можно ли использовать NSDateFormatterдля преобразования resultString в метку времени?

Supertecnoboff
источник

Ответы:

217

Вот что я использую:

(умножить на 1000 для миллисекунд, иначе уберите это)

Если вы используете его все время, было бы неплохо объявить макрос

Затем назовите это так:

Или как метод:

Как TimeInterval

ЗАМЕТКА:

1000 предназначен для преобразования метки времени в миллисекунды. Вы можете удалить это, если предпочитаете свой timeInterval в секундах.

Swift

Если вам нужна глобальная переменная в Swift, вы можете использовать это:

Тогда вы можете назвать это

Опять же, *1000это миллисекунды, если хотите, можете удалить это. Если вы хотите сохранить его какNSTimeInterval

Объявите их вне контекста любого класса, и они будут доступны где угодно.

Логан
источник
2
Нет проблем, я обновил макрос, который использую, на случай, если он будет полезен в вашей ситуации!
Logan
3
Спасибо @Logan, но я уверен, что использование макросов всегда не рекомендуется. Вы легко можете потерять понимание большой программы с макросами. Лучше всего было бы создать метод, который это делает и вызывается всякий раз, когда вам это нужно.
Supertecnoboff
Кстати - если вы добавляете значение в словарь, вы можете просто сделать:@{@"timestamp": @([[NSDate date] timeIntervalSince1970])
Cbas,
15

использовать [[NSDate date] timeIntervalSince1970]

мудрец444
источник
8
@([[NSDate date] timeIntervalSince1970]).stringValue
mattsven
7

ПРИМЕЧАНИЕ. - Отметка времени должна быть в зоне UTC, поэтому я конвертирую наше местное время в UTC.

Вики
источник
у вашего GetCurrentTimeStamp () есть пара проблем со строчными буквами. вырезать и вставить в Xcode, чтобы увидеть
tdios
Используйте это "NSString * strTimeStamp = [NSString stringWithFormat: @"% lld ", миллисекунды]; NSLog (@" Отметка времени =% @ ", strTimeStamp);"
Vicky
6

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

Пеллет
источник
1

// Следующий метод вернет вам метку времени после преобразования в миллисекунды. [ВОЗВРАЩЕНИЕ СТРОКИ]

Фатима Аршад
источник
1

Также можно использовать

для отметки времени в секундах.

рубик
источник
1

Для получения текущей отметки времени удобно определить макрос

Тогда вы можете использовать let timestamp = Constant.Time.now()

Alston
источник
0

Swift:

У меня есть UILabel, который показывает TimeStamp поверх предварительного просмотра камеры.

Я настраиваю кнопку настройки для запуска alertView.

}

AG
источник
0

Журнал будет выглядеть следующим образом: filename: / Users / Shared / Recording_06-28-2016 12: 53: 26.mov

jiten
источник
0

Если вам нужна метка времени в виде строки.

Нанджунда
источник
0

Чтобы получить метку времени из NSDate Swift 3

Использовать

Хардик Таккар
источник