簡體   English   中英

Swift - 獲取 DateComponents 條目的 weekOfYear

[英]Swift - Get weekOfYear for a DateComponents entry

我在獲取有效 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

作為 output。

我預計2 ...

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))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM