0
所以我想比較從我的數據庫(字符串,我轉換爲NSdates)與當前日期一堆日期。比較兩個NSDates帶來的誤報
當我運行代碼示例日期的代碼:2016-07-17 12:28:51 +0000
它返回前一天(昨天)的誤報。
控制檯輸出:
Optional(2016-07-15 22:00:00 +0000)
DAY IN THE PAST
Optional(2016-07-15 22:00:00 +0000)
DAY IN THE PAST
Optional(2016-07-16 22:00:00 +0000)
SAME DAY
Optional(2016-07-16 22:00:00 +0000)
SAME DAY
Optional(2016-07-16 22:00:00 +0000)
SAME DAY
我不知道我在做什麼錯在這裏。代碼:
let dateToday = NSDate() // example: 2016-07-17 12:28:51 +0000
print(dateToday)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let openDB = realm.objects(Article)
for item in openDB {
let getItem = item.toDate
let date = dateFormatter.dateFromString(getItem!)
let order = NSCalendar.currentCalendar().compareDate(dateToday, toDate: date!,
toUnitGranularity: .Day)
print(date) //example 2016-07-17 22:00:00 +0000
switch order {
case .OrderedDescending:
print("DAY IN THE PAST")
case .OrderedAscending:
print("FUTURE DATE")
case .OrderedSame:
print("SAME DAY")
}
請注意,我只需要檢查的日期本身,我不計較時間(小時,分鐘)。
不知道這是否重要,但我只是添加此信息:一般來說,我將我的設備的日期更改爲第17次以進行測試。也許這會導致代碼的一些問題? – SoundShock
你在格林威治標準時間+2時區?然後'2016-07-16 22:00:00 + 0000'根據您所在的時區和指定日期的同一天爲'2016-07-17 00:00:00 + 0200'。 –
@MartinR我認爲自夏天以後,我確實在GMT +02:00時間(比利時)。所以我的代碼忽略小時和分鐘無關緊要?因爲22,而我的2+ GMT則改變了日期? 如何手動修復它?我從未在我的代碼中添加22:00:00,它似乎發生在轉換爲dateFormatter.dateFormat =「yyyy-MM-dd」 – SoundShock