Swift -获取日期组件条目的weekOfYear

mrphzbgm  于 2022-12-17  发布在  Swift
关注(0)|答案(1)|浏览(105)

我在获取有效DateComponents值的weekOfYear时遇到了一些问题。

let cal = Calendar.current
let dc = DateComponents(calendar:cal, year: 2023, month: 1, day:12)
let woy = dc.weekOfYear

print("Week of year: \(woy)")

生成

Week of year: nil

作为输出。
我以为是2 ...

o4hqfura

o4hqfura1#

DateComponents是一个简单的类型。它只是一个日期组件的集合。它不做日期计算,比如计算一年中的星期。这是Calendar的工作。当你初始化日期组件时,你没有给予它一年中的星期,所以当你请求它时,你得到了nil
你可以让日历把你的DateComponents变成一个Date,然后问它一年中的星期是几:

let cal = Calendar.current
let dc = DateComponents(calendar:cal, year: 2023, month: 1, day:12)
if let date = cal.date(from: dc) {
    // prints 2 as expected
    print(cal.component(.weekOfYear, from: date))
}

相关问题