2017-03-16 48 views
-2

我有兩個雙打,並需要查詢NSDate的時間間隔匹配兩個雙打。如何將Double轉換爲NSDate與時間匹配我的雙? :)如果有可能..轉換雙NS日期時間,用於查詢解析

編輯:對不起,我有點匆忙 - 我的道歉!我擁有的雙打代表了一天中的某個時間,如8.00或17.00 ..所以我需要將該Double轉換爲NSDate中的某個時間,如果這樣做有意義的話:)

+1

您需要提供更多詳細信息。你知道這些數字代表什麼嗎?你看過'NSDate'(或'Date')的文檔嗎? – rmaddy

+0

@rmaddy - 感謝您的回覆!我已經更新了我的問題,也許它現在更有意義:)但我會看看文檔 - 不知道爲什麼我沒有想到這一點.. –

回答

0

簡單使用timeIntervalSince1970並傳遞double值作爲參數。

let date = NSDate(timeIntervalSince1970: doubleValue) 
+0

這假定OP代表時間的值1970年1月1日以來的時間間隔。 – rmaddy

+0

對不起,我的問題不太清楚。我需要當前日期的NSDate,時間匹配8.00(早上)或下午16.00的Double –

0

我從答案中找到了一些提示的解決方案。以下是我最終的結果,它的工作原理如下:

let date = NSDate() 
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 
let newDate = cal.startOfDayForDate(date) 

let secondsSince1970ToYesterdayAt23 = newDate.timeIntervalSince1970 
let secondsInOneHour = 3600.0 

let secondsSince1970FromMidnight = secondsSince1970ToYesterdayAt23 + secondsInOneHour 

let secondsFromMidnightToStartTime = (secondsInOneHour * (slider?.lowerValue)!) + secondsSince1970FromMidnight 
let dateWithStartTime = NSDate(timeIntervalSince1970: secondsFromMidnightToStartTime) 

let secondsFromMidnightToEndTime = (secondsInOneHour * (slider?.upperValue)!) + secondsSince1970FromMidnight 
let dateWithEndTime = NSDate(timeIntervalSince1970: secondsFromMidnightToEndTime) 

print("Start \(dateWithStartTime)") // Returning 2017-03-18 08:00:00 +0000 
print("End: \(dateWithEndTime)") // Returning 2017-03-18 17:00:00 +0000