I've got a string (eg. "2014-11-06 16:32:01") I want to turn this format into an NSDate object. Here's what I'm doing:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
var date = dateFormatter.dateFromString("2014-11-06 16:32:01")!
var myCalendar:NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)!
var myComponents = myCalendar.components(NSCalendarUnit.WeekdayOrdinalCalendarUnit, fromDate: date)
var year = myComponents.year
var month = myComponents.month
var day = myComponents.day
year, month, and day are each valued at 9223372036854775807. Am I getting the dateFormat wrong?
The date format is correct. But you have to specify all wanted units in the
myCalendar.components(...)
call. All other components are set to NSNotFound
aka NSIntegerMax
,
which is 2^63 - 1 = 9223372036854775807
on the 64-bit architecture.
This should work:
var myComponents = myCalendar.components(.YearCalendarUnit | .MonthCalendarUnit | .DayCalendarUnit, fromDate: date)