所以我试图将我的数据库(字符串,我转换为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")
}
请注意,我只需要查看日期本身,我不关心时间(小时,分钟)。
答案 0 :(得分:0)
您需要确定所需的结果,然后为此进行编码。
SELECT student_id, name FROM course c, list l WHERE NOT EXISTS(SELECT NULL FROM course c, list l WHERE c.course_id=l.course_id)
个对象在地球上的任何时间编码。在内部,他们使用GMT作为他们的时间基础,但这是一个实现细节。
如果您想比较2个日期以查看它们是否属于同一天,则需要指定用于比较的时区。如果我比较您的时区晚上11:02 PM和12:02 GMT + 2,那么这2个日期会在不同的日期出现。
然而,这些时间是格林威治标准时间下午9:02和晚上10:02,并且在格林尼治标准时间的同一天下降。
如果您想知道日期是否与GMT中的日期相同,那么您需要创建一个格里历日历对象并将其时区设置为GMT。