Вот что я использую:
NSString * timestamp = [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];
(умножить на 1000 для миллисекунд, иначе уберите это)
Если вы используете его все время, было бы неплохо объявить макрос
#define TimeStamp [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000]
Затем назовите это так:
NSString * timestamp = TimeStamp;
Или как метод:
- (NSString *) timeStamp {
return [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];
}
Как TimeInterval
- (NSTimeInterval) timeStamp {
return [[NSDate date] timeIntervalSince1970] * 1000;
}
ЗАМЕТКА:
1000 предназначен для преобразования метки времени в миллисекунды. Вы можете удалить это, если предпочитаете свой timeInterval в секундах.
Swift
Если вам нужна глобальная переменная в Swift, вы можете использовать это:
var Timestamp: String {
return "\(NSDate().timeIntervalSince1970 * 1000)"
}
Тогда вы можете назвать это
println("Timestamp: \(Timestamp)")
Опять же, *1000
это миллисекунды, если хотите, можете удалить это. Если вы хотите сохранить его какNSTimeInterval
var Timestamp: NSTimeInterval {
return NSDate().timeIntervalSince1970 * 1000
}
Объявите их вне контекста любого класса, и они будут доступны где угодно.
@{@"timestamp": @([[NSDate date] timeIntervalSince1970])
использовать
[[NSDate date] timeIntervalSince1970]
источник
@([[NSDate date] timeIntervalSince1970]).stringValue
- (void)GetCurrentTimeStamp { NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; [objDateformat setDateFormat:@"yyyy-MM-dd"]; NSString *strTime = [objDateformat stringFromDate:[NSDate date]]; NSString *strUTCTime = [self GetUTCDateTimeFromLocalTime:strTime];//You can pass your date but be carefull about your date format of NSDateFormatter. NSDate *objUTCDate = [objDateformat dateFromString:strUTCTime]; long long milliseconds = (long long)([objUTCDate timeIntervalSince1970] * 1000.0); NSString *strTimeStamp = [NSString stringWithFormat:@"%lld",milliseconds]; NSLog(@"The Timestamp is = %@",strTimeStamp); } - (NSString *) GetUTCDateTimeFromLocalTime:(NSString *)IN_strLocalTime { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *objDate = [dateFormatter dateFromString:IN_strLocalTime]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSString *strDateTime = [dateFormatter stringFromDate:objDate]; return strDateTime; }
ПРИМЕЧАНИЕ. - Отметка времени должна быть в зоне UTC, поэтому я конвертирую наше местное время в UTC.
источник
Если вы хотите вызвать этот метод непосредственно для объекта NSDate и получить отметку времени в виде строки в миллисекундах без десятичных знаков, определите этот метод как категорию:
@implementation NSDate (MyExtensions) - (NSString *)unixTimestampInMilliseconds { return [NSString stringWithFormat:@"%.0f", [self timeIntervalSince1970] * 1000]; }
источник
// Следующий метод вернет вам метку времени после преобразования в миллисекунды. [ВОЗВРАЩЕНИЕ СТРОКИ]
- (NSString *) timeInMiliSeconds { NSDate *date = [NSDate date]; NSString * timeInMS = [NSString stringWithFormat:@"%lld", [@(floor([date timeIntervalSince1970] * 1000)) longLongValue]]; return timeInMS; }
источник
Также можно использовать
для отметки времени в секундах.
источник
Для получения текущей отметки времени удобно определить макрос
class Constant { struct Time { let now = { round(NSDate().timeIntervalSince1970) } // seconds } }
Тогда вы можете использовать
let timestamp = Constant.Time.now()
источник
Swift:
У меня есть UILabel, который показывает TimeStamp поверх предварительного просмотра камеры.
var timeStampTimer : NSTimer? var dateEnabled: Bool? var timeEnabled: Bool? @IBOutlet weak var timeStampLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() //Setting Initial Values to be false. dateEnabled = false timeEnabled = false } override func viewWillAppear(animated: Bool) { //Current Date and Time on Preview View timeStampLabel.text = timeStamp self.timeStampTimer = NSTimer.scheduledTimerWithTimeInterval(1.0,target: self, selector: Selector("updateCurrentDateAndTimeOnTimeStamperLabel"),userInfo: nil,repeats: true) } func updateCurrentDateAndTimeOnTimeStamperLabel() { //Every Second, it updates time. switch (dateEnabled, timeEnabled) { case (true?, true?): timeStampLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .LongStyle, timeStyle: .MediumStyle) break; case (true?, false?): timeStampLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .LongStyle, timeStyle: .NoStyle) break; case (false?, true?): timeStampLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .NoStyle, timeStyle: .MediumStyle) break; case (false?, false?): timeStampLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .NoStyle, timeStyle: .NoStyle) break; default: break; } }
Я настраиваю кнопку настройки для запуска alertView.
@IBAction func settingsButton(sender : AnyObject) { let cameraSettingsAlert = UIAlertController(title: NSLocalizedString("Please choose a course", comment: ""), message: NSLocalizedString("", comment: ""), preferredStyle: .ActionSheet) let timeStampOnAction = UIAlertAction(title: NSLocalizedString("Time Stamp on Photo", comment: ""), style: .Default) { action in self.dateEnabled = true self.timeEnabled = true } let timeStampOffAction = UIAlertAction(title: NSLocalizedString("TimeStamp Off", comment: ""), style: .Default) { action in self.dateEnabled = false self.timeEnabled = false } let dateOnlyAction = UIAlertAction(title: NSLocalizedString("Date Only", comment: ""), style: .Default) { action in self.dateEnabled = true self.timeEnabled = false } let timeOnlyAction = UIAlertAction(title: NSLocalizedString("Time Only", comment: ""), style: .Default) { action in self.dateEnabled = false self.timeEnabled = true } let cancel = UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .Cancel) { action in } cameraSettingsAlert.addAction(cancel) cameraSettingsAlert.addAction(timeStampOnAction) cameraSettingsAlert.addAction(timeStampOffAction) cameraSettingsAlert.addAction(dateOnlyAction) cameraSettingsAlert.addAction(timeOnlyAction) self.presentViewController(cameraSettingsAlert, animated: true, completion: nil)
}
источник
NSDate *todaysDate = [NSDate new]; NSDateFormatter *formatter = [NSDateFormatter new]; [formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"]; NSString *strDateTime = [formatter stringFromDate:todaysDate]; NSString *strFileName = [NSString stringWithFormat:@"/Users/Shared/Recording_%@.mov",strDateTime]; NSLog(@"filename:%@",strFileName);
Журнал будет выглядеть следующим образом: filename: / Users / Shared / Recording_06-28-2016 12: 53: 26.mov
источник
Если вам нужна метка времени в виде строки.
time_t result = time(NULL); NSString *timeStampString = [@(result) stringValue];
источник
Чтобы получить метку времени из NSDate Swift 3
func getCurrentTimeStampWOMiliseconds(dateToConvert: NSDate) -> String { let objDateformat: DateFormatter = DateFormatter() objDateformat.dateFormat = "yyyy-MM-dd HH:mm:ss" let strTime: String = objDateformat.string(from: dateToConvert as Date) let objUTCDate: NSDate = objDateformat.date(from: strTime)! as NSDate let milliseconds: Int64 = Int64(objUTCDate.timeIntervalSince1970) let strTimeStamp: String = "\(milliseconds)" return strTimeStamp }
Использовать
источник