从 NSCalendar.dateFromComponents 获取奇怪的日期
Getting weird date from NSCalendar.dateFromComponents
我正在尝试从 component
的 year
、week
和 dayOfWeek
中获取日期,但我从上面提到的日期中得到奇怪的日期功能。这是我的工作:
let calendar = NSCalendar(identifier: NSCalendarIdentifierISO8601)
let components = NSDateComponents()
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
let dateKW = calendar?.dateFromComponents(components)
变量 dateKW 等于 24. April 2016。当我将 weekday
更改为 2 时,我得到 18. April 2016。为什么会这样?第一天不应该是 2016 年 4 月 17 日吗?
在公历中,工作日的单位范围从 1=Sunday
、2=Monday
、...到 7=Saturday
。如果您所在地区的第一个工作日是 星期一(例如在德国),那么第 18 个日历周
2016年的时间范围是4月18日(星期一)到4月24日(星期日)。
因此要求第 16 周的星期日
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
正确 returns 2016 年 4 月 24 日。如果您需要那一天的第一天
周然后设置
components.weekday = calendar.firstWeekday
或者根本不设置 components.weekday
。
我正在尝试从 component
的 year
、week
和 dayOfWeek
中获取日期,但我从上面提到的日期中得到奇怪的日期功能。这是我的工作:
let calendar = NSCalendar(identifier: NSCalendarIdentifierISO8601)
let components = NSDateComponents()
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
let dateKW = calendar?.dateFromComponents(components)
变量 dateKW 等于 24. April 2016。当我将 weekday
更改为 2 时,我得到 18. April 2016。为什么会这样?第一天不应该是 2016 年 4 月 17 日吗?
在公历中,工作日的单位范围从 1=Sunday
、2=Monday
、...到 7=Saturday
。如果您所在地区的第一个工作日是 星期一(例如在德国),那么第 18 个日历周
2016年的时间范围是4月18日(星期一)到4月24日(星期日)。
因此要求第 16 周的星期日
components.weekday = 1
components.weekOfYear = 16
components.yearForWeekOfYear = 2016
正确 returns 2016 年 4 月 24 日。如果您需要那一天的第一天 周然后设置
components.weekday = calendar.firstWeekday
或者根本不设置 components.weekday
。