Ich habe die Entwicklung von Apple-Produkten vermieden, weil ich Objective-C hasse. Folglich habe ich es nicht gelernt. Und ich weiß, dass die Swift-Syntax zumindest geringfügig anders ist. Zeigen Sie mir einfach die Syntax. Holen Sie sich einen einfachen SO-Ruf.
Beachten Sie, dass Foundation importiert werden muss.
AlBlue
3
Wie wäre es ohne Foundation?
Marius
3
Wenn Sie Foundation nicht verwenden möchten, können Sie AFNetworking / AlamoFire ( github.com/Alamofire/Alamofire ) verwenden, um currentmillis.com zu laden und dann das HTML der Seite zu analysieren. Beachten Sie, dass Sie Netzwerkverzögerungen berücksichtigen und die Konnektivität überprüfen müssen. Ich entschied mich, nur Foundation zu verwenden ...
1 second =-1 millisecond =1,000 seconds
1 microsecond =1,000,000 seconds
Swift's timeIntervalSince1970gibt Sekunden mit einer Genauigkeit von "Sub-Millisekunden" zurück, die normalerweise Mikrosekunden, manchmal aber auch eine Skala (eine Ziffer rechts von der Dezimalstelle) weniger oder mehr bedeutet. Wenn eine Skala von 5 (5 Stellen nach der Dezimalstelle) zurückgegeben wird, weiß ich nicht, ob Swift die nachfolgende 0 fallen lässt oder keine 6-Skalen mit Genauigkeit erzeugen kann. Wenn jedoch eine Skala von 7 zurückgegeben wird, kann diese zusätzliche Ziffer abgeschnitten werden, da sie über die Genauigkeit von Mikrosekunden hinausgeht. Für konsistente und präzise Werte:
let preciseSeconds =Int(Date().timeIntervalSince1970)let preciseMilliseconds =Int(Date().timeIntervalSince1970*1_000)let preciseMicroseconds =Int(Date().timeIntervalSince1970*1_000_000)// most likely precise
Leider können im Jahr 2038 32-Bit-Zahlen für den Unix-Zeitstempel nicht verwendet werden, und sie müssen 64-Bit sein.
let seconds =Date().timeIntervalSince1970let milliseconds =Date().timeIntervalSince1970*1_000let microseconds =Date().timeIntervalSince1970*1_000_000
Wissen Sie, wann Date und Freunde plattformübergreifend werden könnten?
Zoltán Matók
@ ZoltánMatók Ich habe gehört, dass sie Pläne haben, mehr von Foundation im Freien umzusetzen. Weitere Informationen finden Sie unter forums.swift.org.
- timeIntervalSince1970
.Antworten:
Sie können einfach die
timeIntervalSince1970
Funktion von NSDate verwenden.quelle
Für Swift 3.0
quelle
Sie können dies mit folgendem erhalten
Dies ist für das aktuelle Datum, wenn Sie für ein bestimmtes Datum erhalten möchten
Wenn Sie von der UNIX-Zeitepoche zurück in die Swift Date-Zeit konvertieren möchten, können Sie Folgendes verwenden
quelle
Swift's
timeIntervalSince1970
gibt Sekunden mit einer Genauigkeit von "Sub-Millisekunden" zurück, die normalerweise Mikrosekunden, manchmal aber auch eine Skala (eine Ziffer rechts von der Dezimalstelle) weniger oder mehr bedeutet. Wenn eine Skala von 5 (5 Stellen nach der Dezimalstelle) zurückgegeben wird, weiß ich nicht, ob Swift die nachfolgende 0 fallen lässt oder keine 6-Skalen mit Genauigkeit erzeugen kann. Wenn jedoch eine Skala von 7 zurückgegeben wird, kann diese zusätzliche Ziffer abgeschnitten werden, da sie über die Genauigkeit von Mikrosekunden hinausgeht. Für konsistente und präzise Werte:Leider können im Jahr 2038 32-Bit-Zahlen für den Unix-Zeitstempel nicht verwendet werden, und sie müssen 64-Bit sein.
Eine Erweiterung:
quelle
Wenn Sie Foundation nicht importieren möchten, dh für Linux usw., können Sie Folgendes aus CoreFoundation verwenden:
quelle