Swift'de çağdan saniyeleri nasıl elde edersiniz?
- timeIntervalSince1970
.
Swift'de çağdan saniyeleri nasıl elde edersiniz?
- timeIntervalSince1970
.
Yanıtlar:
NSDate'in timeIntervalSince1970
işlevini basitçe kullanabilirsiniz .
let timeInterval = NSDate().timeIntervalSince1970
Swift 3.0 için
Date().timeIntervalSince1970
Aşağıdakileri kullanarak elde edebilirsiniz
Int(Date().timeIntervalSince1970)
Belirli bir tarih için almak istiyorsanız, bu geçerli tarih içindir
Int(myDate.timeIntervalSince1970)
UNIX zaman döneminden Swift Tarih saatine geri dönmek istiyorsanız, aşağıdakileri kullanabilirsiniz.
let date = Date(timeIntervalSince1970: unixtEpochTime)
1 second = -
1 millisecond = 1,000 seconds
1 microsecond = 1,000,000 seconds
Swift timeIntervalSince1970
, saniyeleri "milisaniyenin altı" olarak belgelenen hassasiyetle döndürüyor, ki bunun genellikle mikrosaniyeler, ancak bazen bir ölçek (ondalığın sağındaki bir basamak) daha az veya daha fazla olduğunu gözlemledim. Bir 5 ölçeği döndürdüğünde (ondalıktan sonra 5 basamak), Swift'in sondaki 0'ı düşürüp düşürmediğini veya 6 kesinlik ölçeği üretemediğini bilmiyorum. Ancak 7 ölçeğini döndürdüğünde, bu fazladan rakam kesilebilir çünkü mikrosaniye hassasiyetinin ötesindedir. Bu nedenle, tutarlı ve hassas doğru değerler için:
let preciseSeconds = Int(Date().timeIntervalSince1970)
let preciseMilliseconds = Int(Date().timeIntervalSince1970 * 1_000)
let preciseMicroseconds = Int(Date().timeIntervalSince1970 * 1_000_000) // most likely precise
Ne yazık ki, 2038 yılında, 32-bit sayılar Unix zaman damgası için kullanılamayacak ve 64-bit olmaları gerekecek.
let seconds = Date().timeIntervalSince1970
let milliseconds = Date().timeIntervalSince1970 * 1_000
let microseconds = Date().timeIntervalSince1970 * 1_000_000
Bir uzantı:
extension Date {
var unixTimestamp: Int64 {
return Int64(self.timeIntervalSince1970 * 1_000)
}
}
Date().unixTimestamp
Foundation'ı ithal etmek istemiyorsanız, yani Linux kullanımı vb. İçin CoreFoundation'dan aşağıdakileri kullanabilirsiniz:
import CoreFoundation
let timestamp = CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970