Pobierz aktualne NSDate w formacie znacznika czasu


83

Mam podstawową metodę, która pobiera bieżący czas i ustawia go w ciągu. Jednak w jaki sposób mogę to zrobić, aby sformatować bieżącą datę i godzinę w formacie znacznika czasu systemu UNIX od 1970 roku?

Oto mój kod:

Czy można użyć, NSDateFormatteraby zmienić „resultString” na znacznik czasu?

Odpowiedzi:


217

Oto czego używam:

(razy 1000 dla milisekund, w przeciwnym razie wyjmij to)

Jeśli używasz go cały czas, dobrze byłoby zadeklarować makro

Następnie nazwij to tak:

Lub jako metoda:

Jako TimeInterval

UWAGA:

1000 służy do konwersji znacznika czasu na milisekundy. Możesz to usunąć, jeśli wolisz swój timeInterval w sekundach.

Szybki

Jeśli chcesz mieć zmienną globalną w Swift, możesz użyć tego:

Następnie możesz to nazwać

Ponownie, *1000jest to milisekundy, jeśli wolisz, możesz to usunąć. Jeśli chcesz zachować go jako plikNSTimeInterval

Zadeklaruj je poza kontekstem jakiejkolwiek klasy, a będą dostępne wszędzie.


2
Nie ma problemu, zaktualizowałem makro, którego używam na wypadek, gdyby było pomocne w Twojej sytuacji!
Logan

3
Dzięki @Logan, ale jestem prawie pewien, że makra są zawsze odradzane. Możesz łatwo stracić zrozumienie dużego programu z makrami. Najlepiej byłoby po prostu stworzyć metodę, która to robi i jest wywoływana zawsze, gdy tego potrzebujesz.
Supertecnoboff

BTW - jeśli dodajesz wartość do słownika, możesz po prostu zrobić:@{@"timestamp": @([[NSDate date] timeIntervalSince1970])
Cbas


7

UWAGA: - Znacznik czasu musi być w strefie UTC, więc konwertuję nasz czas lokalny na czas UTC.


twoja GetCurrentTimeStamp () zawiera kilka problemów z małymi literami. wytnij i wklej do Xcode, aby zobaczyć
tdios

Użyj tego "NSString * strTimeStamp = [NSString stringWithFormat: @"% lld ", milliseconds]; NSLog (@" The Timestamp is =% @ ", strTimeStamp);"
Vicky

6

Jeśli chcesz wywołać tę metodę bezpośrednio w obiekcie NSDate i uzyskać znacznik czasu jako ciąg w milisekundach bez żadnych miejsc dziesiętnych, zdefiniuj tę metodę jako kategorię:


1

// Poniższa metoda zwróci sygnaturę czasową po konwersji na milisekundy. [RETURNS STRING]


1

Można również użyć

dla znacznika czasu w sekundach.


1

Wygodne jest zdefiniowanie makra w celu uzyskania aktualnego znacznika czasu

Następnie możesz użyć let timestamp = Constant.Time.now()


0

Szybki:

Mam UILabel, który pokazuje TimeStamp na podglądzie aparatu.

Konfiguruję przycisk ustawień, aby wyzwolić alertView.

}


0

Dziennik będzie wyglądał następująco: nazwa pliku: / Users / Shared / Recording_06-28-2016 12:53: 26.mov


0

Jeśli potrzebujesz znacznika czasu jako ciągu.


0

Aby uzyskać znacznik czasu z NSDate Swift 3

Używać

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.