【发布时间】:2016-01-31 17:40:10
【问题描述】:
今天是 2016 年 2 月 1 日,我刚刚打开我的工作应用程序以继续我的工作,这让我很震惊。
这是一个日期的集合视图,我在一月份没有发现任何问题,因为还没有一个月。
这是代码,
func dF(someDate:NSDate) -> (String){
let monthFormat = NSDateFormatter()
let dayFormat = NSDateFormatter()
monthFormat.dateFormat = "MMM"
dayFormat.dateFormat = "D"
let aMonth = monthFormat.stringFromDate(someDate)
let aDay = dayFormat.stringFromDate(someDate)
//concatenate strings
let conString = aMonth + " " + aDay
return (conString)
}
//from today to 7th day, to be used in ScrollView
let day1 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: 0, toDate: NSDate(), options: [])
let day2 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -1, toDate: NSDate(), options: [])
let day3 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -2, toDate: NSDate(), options: [])
let day4 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -3, toDate: NSDate(), options: [])
let day5 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -4, toDate: NSDate(), options: [])
let day6 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -5, toDate: NSDate(), options: [])
let day7 = NSCalendar.currentCalendar().dateByAddingUnit(.Day, value: -6, toDate: NSDate(), options: [])
let titles = [dF(day1!), dF(day2!), dF(day3!), dF(day4!), dF(day5!), dF(day6!), dF(day7!)]
我希望 day1 将当前日期传递给函数 dF 并对其进行格式化。
所以我进行了一些检查以确保我得到了正确的日期 当前时间:我所在时区的 2016 年 2 月 1 日凌晨 1:08
print(day1)
print(day2)
print(ddd)
这是控制台的结果:
可选(2016-01-31 17:08:47 +0000)
可选(2016-01-30 17:08:47 +0000)
2 月 32 日
我怀疑我的 NSDateComponent 设置不正确/与本地时区不相上下。有什么想法吗?
【问题讨论】:
-
阅读日期格式说明符的文档。
D并不是你想的那样。 -
与其他任何领域相比,如果您认为在处理日期和日历方面存在错误,则该错误很可能出在您的代码中,或者您的期望是错误的。
标签: ios swift nsdate nsdateformatter nsdatecomponents