簡體   English   中英

獲得兩個NSDate之間的分鍾和小時?

[英]Get minutes and hours between two NSDates?

假設我需要獲取兩個NSDate之間的小時和分鍾。 例如,一個日期比另一個日期晚3小時42分鍾。 我將如何獲得小時數和分鍾數? 根據這個問題 ,我已經嘗試過類似的方法,但是它沒有用:您沒有時間又沒有分鍾。

我也嘗試過使用NSCalendar,但這也沒有解決。 相反,它只是給了我小時數和秒數,而不是一次測量。

有任何想法嗎?

時間間隔以秒為單位-可以同時顯示小時和分鍾。 只是一點數學。

let hours = totalTime / 3600
let minutes = (totalTime % 3600) / 60

Mac OS X 10.10 Yosemite引入了智能NSDateComponentsFormatter來顯示組件中的時間間隔,例如18h 56m 4s

此摘要的結果是從午夜到現在的格式化時間間隔。

let calendar = NSCalendar.currentCalendar()
let midnight = calendar.startOfDayForDate(NSDate())
let timeinterval = NSDate().timeIntervalSinceDate(midnight)

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Abbreviated
formatter.stringFromTimeInterval(timeinterval)

普通數學很容易,不需要日歷。

let now = NSDate()
let latest = NSDate(timeInterval: 3*3600+42*60, sinceDate: now)

let difference = latest.timeIntervalSinceDate(now)

let hours = Int(difference) / 3600
let minutes = (Int(difference) / 60) % 60

這將為您提供以小時和分鍾為單位的間隔。 注意:不要忘記強制轉換為整數,因為NSTimeInterval是一個浮點類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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