日历与设置无关

Calendar regardless of settings

在应用中,我使用星期几来打开成就

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE"
let dayInWeek = dateFormatter.string(from: date)

   if dayInWeek == "Monday" {

    achiv = true
}

我在申请中使用英语、俄语和乌克兰语。问题是,如果 phone 是英文,则此条件有效。 帮助传递此方法,以便无论设备上的语言如何,条件都有效

您可以使用 DateComponents 检查工作日:

let date = Date()
let weekday = Calendar.current.component(.weekday, from: date)
if weekday == 1 {
    print("Sunday")
} else if weekday == 2 {
    print("Monday")
}

注意:字符串检查if weekday == "Monday"不安全,因为不同地区有不同的字符串。

您可以使用 weekday 属性 或 DateComponents

let now = Date()

let today = Calendar(identifier: .gregorian).component(.weekday, from: now)

if today == 2 {
    print("It is Monday")
}

请注意,我使用的是公历而不是当前日历,因为工作日值在其他日历中可能会有所不同。