0

当我尝试将 NSString 转换为 NSDate 时,dateFromString 返回 null 这是我的代码:

    NSString *dateString = @"Wed 16 Oct 2013";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale:[NSLocale systemLocale]];
    [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
    [dateFormatter setDateFormat:@"EEE dd MMM yyyy"];
    [dateFormatter setFormatterBehavior:NSDateFormatterBehaviorDefault];
    NSDate *myDate = [dateFormatter dateFromString: dateString];

请给我任何关于这个的建议。

4

2 回答 2

1

这是一个语言环境问题,它与iOS 7 中的 NSDateFormatter Strings类似,只是反过来。

可能在您的系统区域设置中Wed或/并且Oct在工作日或/和一个月内不是有效的有效文字。

尝试将语言环境设置为en_UScurrentLocale

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

或者

NSLocale *locale = [NSLocale currentLocale];
于 2013-10-23T14:46:41.187 回答
0

有关更多格式样式http://cybersam.com/ios-dev/quick-guide-to-ios-dateformatting

NSString *dateString = @"Wed 16 Oct 2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"EEE dd MMM yyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"%@", dateFromString);
于 2013-10-23T14:50:56.227 回答