首页 > 解决方案 > 日历与设置无关

问题描述

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

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

   if dayInWeek == "Monday" {

    achiv = true
}

我在应用程序中使用英语、俄语和乌克兰语。问题是如果电话是英文的,这个条件是有效的。帮助通过此方法,以使条件适用于设备上的语言

标签: iosswiftdateif-statementcalendar

解决方案


您可以使用 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"是不安全的,因为不同的地区有不同的字符串。


推荐阅读