[英]Compare a string with current time
我有一個帶有特定小時-分鍾時間戳的字符串,如下所示:
let timeToday = "14:00"
我想將這個時間與當天的當前時間進行比較。 我在使用 NSDate 時遇到了問題,而且它使用了 UTC 時間戳。 我以前沒有使用過NSDate
、 NSCalendar
或NSDateFormatter
,我對解決這個看似簡單的任務有多么困難感到有點沮喪......
所以我試圖將字符串和當前時間的相同時間設置為兩個 NSDate 變量,然后使用某種比較方法,但我似乎無法在相同的基礎上獲得它們。
如何在相同的基礎上獲得兩個時間戳?
所以我有一個 NSDate :
NSDate: timeToday // "2015-12-05 14:00:00 +0000"
NSDate: currentTime // "2015-12-05 22:46:54 +0000"
所以我最終通讀了文檔以了解數據類型的概念。 NSDate
代表一個時間點,它將根據您在地球上的位置顯示不同。 因此,使用 UTC 作為時間字符串和當前時間的基礎完全沒問題。
我解決了這樣的問題,使用:
let calender = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
calender!.locale = NSLocale.currentLocale()
let timeToday = "14:00"
let timeArray = timeToday.componentsSeparatedByString(":")
let timeTodayHours = Int(timeArray[0])
let timeTodayMin = Int(timeArray[1])
let timeTodayDate = calender!.dateBySettingHour(timeTodayHours!, minute: timeTodayMin!, second: 00, ofDate: NSDate(), options: NSCalendarOptions())
let now = NSDate()
if now.compare(timeTodayDate!) == .OrderedDescending {
print(" 'timeToday' has passed!!! ")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.