[英]What type to use for timeIntervalSince1970 in ms?
我需要從Epoch到毫秒之間的時間來請求API,所以我希望有一個函數可以將我的myUIDatePicker.date.timeIntervalSince1970
乘以1000轉換為毫秒。我的問題是返回值應該是多少?
現在我有
func setTimeSinceEpoch(datePicker: UIDatePicker) -> Int {
return Int(datePicker.date.timeIntervalSince1970 * 1000)
}
這會引起任何問題嗎? 我需要一個整數,而不是浮點數,但是我會遇到溢出問題嗎? 我用打印語句對其進行了測試,它似乎可以工作,但是我想找到最佳的方法。
看蘋果文檔 :
var NSTimeIntervalSince1970: Double { get }
有一個很好的函數,名為distantFuture。 即使在函數中使用此日期,結果也會小於最大Int。
let future = NSDate.distantFuture() // "Jan 1, 4001, 12:00 AM"
print((Int(future.timeIntervalSince1970) * 1000) < Int.max) // true
因此,直到4001年,您都可以使用。 它將在64位系統上完美運行。
注意:如果您的系統支持iPhone 5(32位),則在您使用的幾乎任何日期都會出現錯誤。 Iphone 5中的Int對應於Int32。 返回Int64是更好的方法。 看到這個 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.