I want t开发者_Python百科o give, for example, 12/11/2005
in the format of mm/dd/yyyy
. Can I initialize 12/11/2005
to NSDate
directly? Any help?
it gives a warning and crashes when I declare it as
NSDate *then = [NSDate dateWithNaturalLanguageString:02/11/2009 locale:nil];
What you need to do is something like this:
NSDateFormatter *mmddccyy = [[NSDateFormatter alloc] init];
mmddccyy.timeStyle = NSDateFormatterNoStyle;
mmddccyy.dateFormat = @"MM/dd/yyyy";
NSDate *d = [mmddccyy dateFromString:@"12/11/2005"];
NSLog(@"%@", d);
Use + (id)dateWithNaturalLanguageString:(NSString *)string
http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html#//apple_ref/occ/clm/NSDate/dateWithNaturalLanguageString:
Another solution could be the use of NSCalendar and NSDateComponents, since +dateWithNaturalLanguageString: is deprecated.
For example you want a NSDate initialised to 15th of August 2001. This is the code that will work for you:
NSCalendar *g = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.year = 2001;
comps.month = 8;
comps.day = 15;
NSDate *myDate = [g dateFromComponents:comps];
or another way is:
let earliestDate = calendar.dateWithEra(1, year: 2012, month: 1, day: 1, hour: 0, minute: 0, second: 0, nanosecond: 0)
to set the earliestDate NSDate to 01/01/2012
精彩评论