从NSCalendar.dateFromComponents获取奇怪的日期
问题描述:
我想从component
的year
,week
和dayOfWeek
得到一个日期,但我从上述函数得到奇怪的日期。下面是我做的:从NSCalendar.dateFromComponents获取奇怪的日期
let calendar = NSCalendar(identifier: NSCalendarIdentifierISO8601)
let components = NSDateComponents()
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
let dateKW = calendar?.dateFromComponents(components)
变量dateKW等于24月2016年当我改变weekday
2,我得到18月2016年为什么这样呢?第一天不应该是2016年4月17日?
答
在公历中,工作日单位范围从1=Sunday
,2=Monday
,...到7=Saturday
。如果您所在地区的第一个工作日是星期一(例如德国),那么2016年的第18个日历周 的范围从4月18日(星期一)到4月24日(星期日)。
在一周#因此,要求周日16
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
如果你需要 周的第一天,然后设置
components.weekday = calendar.firstWeekday
或者干脆正确返回4月24日,2016年别根本不设置components.weekday
。
哦好吧,所以它更像是一个1 =星期日的枚举... 7 =星期六好了,现在我明白了,谢谢。我从其他渠道获得周日,周一和周年的数据,我必须将它们显示为正确的日期。是的,我在德国。现在我的解决方案是在我的工作日添加1,幸好它似乎为我返回了正确的日期。 – Adarkas2302