0

我有一个字符串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 中给了我错误。

4

1 回答 1

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];

顺便说一句:你必须初始化你的NSDate变量,如果你将它分配给一个nil值,那么它可能不会像它正在发生的那样按预期工作。

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

[dateFormat setDateFormat: @"EE, dd MMM yyyy '-' HH:mm"];
于 2013-04-16T15:50:59.027 回答