【发布时间】:2014-12-26 00:08:12
【问题描述】:
我遇到了一个相当奇怪的“错误”。使用此方法获取一年中某一周的日期时:
let dates = NSMutableArray()
let cal = NSCalendar.currentCalendar()
cal.firstWeekday = 2
let formatter = NSDateFormatter()
formatter.dateFormat = "ww YYYY"
formatter.calendar = cal
let date = formatter.dateFromString(week as String)
println(date)
字符串 week 是 52 2014,因此预期日期是 12 月 22 日星期一,但它返回的是 12 月 20 日星期六 23:00。首先,我以为我已经通过设置日历的firstWeekday-选项来处理一周的第一天,但没有运气。此外,返回的日期甚至不是第 52 周。
只是为了再次检查我运行cal.components(NSCalendarUnit.WeekOfYearCalendarUnit, fromDate: date!).weekOfYear 再次检查我不是白痴,不,先生,生成日期的周是 51,即所需周的前一周。
知道我怎样才能达到预期的结果吗?
【问题讨论】:
-
YYYY对您来说可能是错误的格式化程序,因为它是“一年中的一周”日历中的年份。此日历适用于几周。大多数情况下,它与我们日常生活中所知道的日历相同,但在一年的开始和结束时,它可能会产生奇怪的结果:一月的前 3 天可能是去年的第 53 周,或者次年第 1 周 12 月的最后 3 天。您可能想使用yyyy。 -
@vikingosegundo 谢谢,我不知道 :)
-
对于投反对票的人,请发表评论,解释为什么这个问题不是一个好问题。