簡體   English   中英

timeIntervalSince1970以毫秒為單位使用什么類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM