无论区域设置如何,如何在 Swift 中获取工作日?

How to get weekday in Swift regardless of the locale settings?

在我的 iOS 应用程序中,用户可以选择在哪一天激活某些操作,我将每个选择保存为 OptionSet 的原始值。这一切都很好。

但我需要一种方法将当前日期映射到所选选项。我如何才能获得某种工作日常量,这些常量不会根据所选区域设置的星期日或星期一开始而改变?

这个:

let weekDay = Calendar.current.component(.weekday, from: Date())

似乎是一个解决方案,但 Int 常量会根据语言环境而变化吗?根据 Apple 的非常简短的文档,这应该是 1 公历中的星期日。

有什么方法可以让 Date 的工作日始终保持不变?

我想将这些常量映射到我的 OptionSet 标志,并根据该标志决定是否应在给定的日期激活操作。

谢谢。

您混淆了 weekdayfirstWeekday

weekday 组件独立于语言环境,在公历中 1 始终是星期日,2 是星期一,依此类推