2015-08-23 22:00:00 0000
2015-08-23 19:13:45 0000
很明显,日期是在同一天,因为23 = 23.但是我似乎无法在代码中建立这个.我试过了:
1)
let date = tripObject["tripDate"] as! NSDatelet dateFormatter = NSDateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd"let str = dateFormatter.stringFromDate(date)let date2 = NSDate()let dateFormatter2 = NSDateFormatter()dateFormatter2.dateFormat = "yyyy-MM-dd"let str2 = dateFormatter2.stringFromDate(date2)println(". \(str) and \(str2) .")
这给出了2015-08-24和2015-08-23
2)
let dateComponents = NSCalendar.currentCalendar().components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay,fromDate: tripObject["tripDate"] as! NSDate)let dateComponents2 = NSCalendar.currentCalendar().components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay,fromDate: NSDate())
这给出了不同的日期组件.
3)
if NSCalendar.currentCalendar().isDate(firstDate!,inSameDayAsDate: secondDate!){
4)
if NSCalendar.currentCalendar().isDateInToday(the NSDate) {
3和4都失败了.
我完全迷失了,有什么想法吗?
解决方法 NSCalendar有一个方法isDate:equalToDate:toUnitGranularity:它完全符合你的需要date1和date2是要比较的NSDate实例,结果是Bool
let calendar = NSCalendar.currentCalendar()calendar.timeZone = NSTimeZone(forSecondsFromGMT: 0)let datesAreInTheSameDay = calendar.isDate(date1,equalToDate: date2,toUnitGranularity: .CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear)
斯威夫特2:
let datesAreInTheSameDay = calendar.isDate(date1,toUnitGranularity: [.Day,.Month,.Year])
斯威夫特3:
var calendar = Calendar.currentcalendar.timeZone = TimeZone(secondsFromGMT: 0)!let datesAreInTheSameDay = calendar.isDate(date1,equalTo: date2,toGranularity:.day)总结
以上是内存溢出为你收集整理的ios – 比较两个NSDates日,月和年整数全部内容,希望文章能够帮你解决ios – 比较两个NSDates日,月和年整数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)