现在是 2017 年 10 月 8 日,星期日。
var weekday = Calendar(identifier: .iso8601).component(.weekday, from: Date())
工作日是 1,但应该是 7。有什么问题吗?
最佳答案
首先:这与 Swift 无关。 NSCalendar
是 Cocoa 的一部分。 (顺便说一句,用 Objective-C 编写。)
一般来说:
即使在大多数西方国家/地区,“商业周”也从星期一(也称为一周的第一天)开始,传统上在希伯来语和基督教日历中,星期日是一周的第一天。 (除此之外,对于基督徒来说,这是上帝的日子。当然,这是第一天。你能给上帝另一个地方吗?)
因此,在西方日历中星期日通常会得到 1 或 0(也就是最低有效索引)。
ISO8601
但是,ISO8601 肯定地将星期一定义为一周的第一天。但这与索引工作日无关,而是与周计算,i。 e.为“一年的第一周”。 weekday
是一个简单的索引,没有别的。
关于iso8601 中的 swift 4 工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46634173/