工作日字符串如何通过传递整数从NSDateComponents返回?

时间:2015-04-01 21:28:34

标签: ios nsdatecomponents nsdatecomponentsformatter

假设我通过其整数值知道日期,但我想在用户的语言环境中获取工作日的字符串值。可以在没有日期对象的情况下使用NSDateComponents以某种方式通过传递整数来返回日期(例如星期一)吗?

目前我正在使用字典与一周中的日子,但就用户所在地而言,这显然远非理想。

2 个答案:

答案 0 :(得分:1)

获取星期几的数字,然后使用NSDateFormatter的weekdaySymbols(或shortWeekdaySymbols)来获取工作日名称的NSArray。

NSDateFormatter需要设置有效的NSCalendar / NSLocale,否则无需“知道”当前日期/时间。

答案 1 :(得分:1)

Hot Licks'答案很棒。投一票。

要想看看那个只需要一条线就写了10行的穷人的解决方案,你也可以知道2006年1月1日的星期天。

let weekday = 1 // the day you want text for, 1 == sunday
var comps = NSDateComponents()
comps.year = 2006
comps.day = weekday
let calendar = NSCalendar(identifier: NSGregorianCalendar)
let d = calendar?.dateFromComponents(comps)
let f = NSDateFormatter()
f.dateFormat = "eee" // short day style, "Sun", there are more available
let dayName = f.stringFromDate(d!)

我无法看到这种方法的任何优势:)