繁体   English   中英

Swift:ISO 8601日期(星期和年份)

[英]Swift: ISO 8601 date from week and year

我正在尝试使用Swift获取给定日历周和年份的一周中第一天的日期。

let calendar = Calendar(identifier: .gregorian)
var dayComponent = DateComponents()
dayComponent.weekOfYear = 7
dayComponent.weekday = 1
dayComponent.year = 2016
var date = calendar.date(from: dayComponent as DateComponents)

第一个问题是工作日= 1表示星期日,而不是ISO 8601(星期一),因此我认为NSCalendar与ISO 8601不兼容。 但没问题,我可以使用平日= 2。

第二个问题是,上面的代码将给出2016年2月7日,而不是2016年2月15日。 这里的问题是,ISO 8601将第一周定义为具有第一星期四的星期,NSCalendar也未使用该星期。

因此,问题是,是否有办法使本周第一天的ISO 8601快速兼容?

我发现的所有示例均未得出与ISO兼容的日期。 谢谢!

使用ISO8601日期组件时,请使用ISO8601日历。

以下代码为您提供了2016年2月15日:

let calendar = Calendar(identifier: .iso8601)
let dayComponent = DateComponents(year: 2016, weekday: 2, weekOfYear: 7)
let date = calendar.date(from: dayComponent)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM