Voici ce que j'utilise:
NSString * timestamp = [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];
(multiplié par 1000 pour les millisecondes, sinon, retirez-le)
Si vous l'utilisez tout le temps, il peut être intéressant de déclarer une macro
#define TimeStamp [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000]
Alors appelez-le comme ceci:
NSString * timestamp = TimeStamp;
Ou comme méthode:
- (NSString *) timeStamp {
return [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];
}
Comme TimeInterval
- (NSTimeInterval) timeStamp {
return [[NSDate date] timeIntervalSince1970] * 1000;
}
REMARQUE:
Le 1000 est de convertir l'horodatage en millisecondes. Vous pouvez le supprimer si vous préférez votre timeInterval en secondes.
Rapide
Si vous souhaitez une variable globale dans Swift, vous pouvez utiliser ceci:
var Timestamp: String {
return "\(NSDate().timeIntervalSince1970 * 1000)"
}
Ensuite, vous pouvez l'appeler
println("Timestamp: \(Timestamp)")
Encore une fois, le *1000
est pour les millisecondes, si vous préférez, vous pouvez le supprimer. Si vous voulez le garder comme unNSTimeInterval
var Timestamp: NSTimeInterval {
return NSDate().timeIntervalSince1970 * 1000
}
Déclarez-les en dehors du contexte de toute classe et ils seront accessibles n'importe où.
@{@"timestamp": @([[NSDate date] timeIntervalSince1970])
utilisation
[[NSDate date] timeIntervalSince1970]
la source
@([[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; }
REMARQUE: - L'horodatage doit être dans la zone UTC, donc je convertis notre heure locale en heure UTC.
la source
Si vous souhaitez appeler cette méthode directement sur un objet NSDate et obtenir l'horodatage sous forme de chaîne en millisecondes sans décimales, définissez cette méthode comme une catégorie:
@implementation NSDate (MyExtensions) - (NSString *)unixTimestampInMilliseconds { return [NSString stringWithFormat:@"%.0f", [self timeIntervalSince1970] * 1000]; }
la source
// La méthode suivante vous renvoie l'horodatage après la conversion en millisecondes. [RETURNS STRING]
- (NSString *) timeInMiliSeconds { NSDate *date = [NSDate date]; NSString * timeInMS = [NSString stringWithFormat:@"%lld", [@(floor([date timeIntervalSince1970] * 1000)) longLongValue]]; return timeInMS; }
la source
Peut également utiliser
pour l'horodatage en secondes.
la source
Il est pratique de définir une macro pour obtenir l'horodatage actuel
class Constant { struct Time { let now = { round(NSDate().timeIntervalSince1970) } // seconds } }
Ensuite, vous pouvez utiliser
let timestamp = Constant.Time.now()
la source
Rapide:
J'ai un UILabel qui montre TimeStamp sur un aperçu de la caméra.
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; } }
Je suis en train de configurer un bouton de réglage pour déclencher une alerteView.
@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)
}
la source
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);
Le journal sera: nom de fichier: / Users / Shared / Recording_06-28-2016 12: 53: 26.mov
la source
Si vous avez besoin d'un horodatage sous forme de chaîne.
time_t result = time(NULL); NSString *timeStampString = [@(result) stringValue];
la source
Pour obtenir l'horodatage de 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 }
Utiliser
la source