迅速。日历。 veryShortWeekdaySymbols 从星期一开始

问题描述 投票:0回答:3

我想从星期一开始显示非常短的工作日符号。

当我在操场上这样做时:

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)

但是结果是一样的

ios swift calendar
3个回答
5
投票

尝试这个解决方案。希望这对你有用。

let firstWeekday = 2 // -> Monday

var symbols = calendar.veryShortWeekdaySymbols
symbols = Array(symbols[firstWeekday-1..<symbols.count]) + symbols[0..<firstWeekday-1]

结果 -> [“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]


0
投票

您可以简单地删除第一个元素并附加它:

var weekdaySymbols = Calendar(identifier: .iso8601).veryShortWeekdaySymbols
weekdaySymbols.append(weekdaySymbols.remove(at: weekdaySymbols.startIndex))
weekdaySymbols  // ["M", "T", "W", "T", "F", "S", "S"]

0
投票

另一个选项是将它们与

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 ""
© www.soinside.com 2019 - 2024. All rights reserved.