我想从星期一开始显示非常短的工作日符号。
当我在操场上这样做时:
var calendar = Calendar.current
print(calendar.veryShortWeekdaySymbols)
结果是:
["S", "M", "T", "W", "T", "F", "S"]
我也尝试更改firstWeekday:
var calendar = Calendar.current
calendar.firstWeekday = 2
print(calendar.veryShortWeekdaySymbols)
但是结果是一样的
尝试这个解决方案。希望这对你有用。
let firstWeekday = 2 // -> Monday
var symbols = calendar.veryShortWeekdaySymbols
symbols = Array(symbols[firstWeekday-1..<symbols.count]) + symbols[0..<firstWeekday-1]
结果 -> [“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
您可以简单地删除第一个元素并附加它:
var weekdaySymbols = Calendar(identifier: .iso8601).veryShortWeekdaySymbols
weekdaySymbols.append(weekdaySymbols.remove(at: weekdaySymbols.startIndex))
weekdaySymbols // ["M", "T", "W", "T", "F", "S", "S"]
另一个选项是将它们与
Calendar.current.localWeekdays
同步。
这样您就可以始终确定它在当前区域设置中是正确的。 不确定是否有一个国家或日历第一个工作日不会这样做。 Apple 为您提供所有数据。
let symbols = Calendar.current.shortWeekdaySymbols
let weekdayIndex = Calendar.current.localWeekdays.firstIndex(of: weekday) ?? 0
if weekdayIndex < symbols.count{
return symbols[weekdayIndex]
}
return ""