假设我通过其整数值知道日期,但我想在用户的语言环境中获取工作日的字符串值。可以在没有日期对象的情况下使用NSDateComponents
以某种方式通过传递整数来返回日期(例如星期一)吗?
目前我正在使用字典与一周中的日子,但就用户所在地而言,这显然远非理想。
答案 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!)
我无法看到这种方法的任何优势:)