我有一个需要验证的UIDatePicker。我想检查UIDatePicker中的工作日是否是特定的int值。
我用
@IBAction func validateDateTime(sender: AnyObject) {
var date = self.dateTime.date
let formatterWeekday = NSDateFormatter()
formatterWeekday.dateFormat = "e"
let weekday_string = formatterWeekday.stringFromDate(date)
}
获取工作日但是如何将其转换为int以便我可以将其与其他int值进行比较?我尝试过:
weekday_string.intValue()
但似乎是weekday_string不支持intValue方法。
答案 0 :(得分:2)
stringFromDate
返回string
。在Swift中将string
转换为int
的方法是toInt()
您可以尝试:
weekday_string.toInt()
或者您可以将工作日视为int
,如下所示:
var myDate = self.dateTime.date
let myCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
let myComponents = myCalendar.components(.WeekdayCalendarUnit, fromDate: myDate)
let weekDay = myComponents.weekday
答案 1 :(得分:0)
我对Swift还不够流利,所以这里是Objective-C的答案。由于您已经拥有日期,因此您不需要使用任何格式化程序。您只需要在日历中询问组件:
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate:date];
// components.weekDay is a number, representing the day of the week.
请参阅NSCalendar documentation和NSDateComponents documentation。
为了使其更稳定,使用特定日历而不是当前默认日历通常是个好主意(不同地区的用户可能使用非公历日历)。因此,您使用[NSCalendar currentCalendar]
而不是[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]
。