在 ios swift 上获取当天名称的更好方法

Posted

技术标签:

【中文标题】在 ios swift 上获取当天名称的更好方法【英文标题】:better way to get the name of the day on ios swift 【发布时间】:2015-11-15 12:23:40 【问题描述】:

我这样取今天的名字

func loadDayName(forDate date: NSDate) -> String
    let myComponents = calendar.components(.Weekday, fromDate: date)
    let weekDay = myComponents.weekday
    switch weekDay 
    case 1:
        return "Sunday"
    case 2:
        return "Monday"
    case 3:
        return "Tuesday"
    case 4:
        return "Wednesday"
    case 5:
        return "Thursday"
    case 6:
        return "Friday"
    case 7:
        return "Saturday"
    default:
        return "Nada"
    

它正在工作,但我想知道 swift 是否带有一些库来自动执行此操作,而不是我在手动代码中执行此操作

【问题讨论】:

您应该使用带有自定义日期格式的 NSDateFormatter。 developer.apple.com/library/mac/documentation/Cocoa/Reference/… @Darren 我已经这样做了,但这与我没有向你展示代码的问题无关 您可以配置日期格式化程序以仅打印给定 NSDate 的全天名称。 ***.com/a/27369380/2303865 这不是重复的。另一个问题更广泛。这是这个特定问题和答案的最佳问题。 【参考方案1】:

使用DateFormatter

斯威夫特 4

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

Swift3

let date = NSDate()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat  = "EEEE" // "EE" to get short style
let dayInWeek = dateFormatter.stringFromDate(date) // "Sunday"    

截图

【讨论】:

这是一个不错的选择,但数组包含 ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] 而不是我想要的日子的全名 有了shortWeekdaySymbols ,你可以得到短字符串。就像我更新的代码一样 你怎么知道 weekdaysSymbols 包含全名?我打印了它,它们都包含短名称。 +1 的努力 weekdaysSymbols 在我的操场上运行良好。也可以使用dateFormatter。就像我更新的代码一样 在 Swift 4 中,stringFromDate 现在是 formatter.string(from: now)【参考方案2】:

如果您想获取可以使用的日期名称数组:weekdaySymbols in Calendar()

示例:

let calendar = Calendar(identifier: .gregorian)
let days = calendar.weekdaySymbols

【讨论】:

是的,但是在您设置 calendar.locale 之后。【参考方案3】:

你也可以检查这个 DateFormatter

let dayNameFormatter: DateFormatter = 
    let dateFormatter = DateFormatter()
    dateFormatter.locale = .current
    dateFormatter.calendar = .current
    dateFormatter.dateFormat = "cccc"
    return dateFormatter
()
print(dayNameFormatter.string(from: Date())) Prints today's day name ?

c - 代表星期几,good answer,official source

【讨论】:

以上是关于在 ios swift 上获取当天名称的更好方法的主要内容,如果未能解决你的问题,请参考以下文章

swift [格式时间Swift]找到一种方法来获取当天的时间#tags:swift,date,time

iOS swift UIFont 字体名称大全,图解及使用方法

如何在 UITesting swift 4 iOS 中获取应用程序名称

通过反射获取方法的参数名称(JDK8以上支持)

从 api 获取所有数据以及如何在 swift ios 中仅在单元格上附加标题

如何在 iOS 中获取 WLAN ISP 名称?