开发者

How can I initialize a date to NSdate?

开发者 https://www.devze.com 2022-12-12 05:43 出处:网络
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?

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

0

精彩评论

暂无评论...
验证码 换一张
取 消