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


83

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

Вот мой код:

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

Ответы:


217

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

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

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

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

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

Как TimeInterval

ЗАМЕТКА:

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

Swift

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

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

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

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


2
Нет проблем, я обновил макрос, который использую, на случай, если он будет полезен в вашей ситуации!
Logan

3
Спасибо @Logan, но я уверен, что использование макросов всегда не рекомендуется. Вы легко можете потерять понимание большой программы с макросами. Лучше всего было бы создать метод, который это делает и вызывается всякий раз, когда вам это нужно.
Supertecnoboff

Кстати - если вы добавляете значение в словарь, вы можете просто сделать:@{@"timestamp": @([[NSDate date] timeIntervalSince1970])
Cbas,


7

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


у вашего GetCurrentTimeStamp () есть пара проблем со строчными буквами. вырезать и вставить в Xcode, чтобы увидеть
tdios

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

6

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


1

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


1

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

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


1

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

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


0

Swift:

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

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

}


0

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


0

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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.