仅在更改iOS 6时NSString到NSdate

时间:2013-04-16 11:42:14

标签: ios6 nsstring nsdate nsdateformatter

我有一个字符串Apr. 20, 2013 Saturday @ 7:00 PM,我正在使用下面的代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
   [dateFormatter setDateFormat:@"MMM. d, yyyy EEEE @ h:mm a"];
   NSDate *dateFromString = nil;
   dateFromString = [dateFormatter dateFromString:dateString];
   [dateFormatter release];

我的结果为2000-01-01 13:30:00 +0000。它在iOS 6中给了我错误。

1 个答案:

答案 0 :(得分:1)

你必须这样做:

NSDate *today = [[NSDate alloc] init];
NSDateFormatter *aux = [[NSDateFormatter alloc] init];
[aux setDateFormat: @"MMM. d, yyyy EEEE @ h:mm a"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"es_ES"]; // Your locale, recommended 'en_US', 'en_GB', etc...
[aux setLocale:locale];
NSString *date = [aux stringFromDate: today];

BTW:您必须初始化NSDate变量,如果将其分配给nil值,那么它可能无法正常工作。

<强> EDIT1: 可能你想使用这种日期格式:

[dateFormat setDateFormat: @"EE, dd MMM yyyy '-' HH:mm"];