Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios dateFromString一直返回nil_Ios_Nsdate - Fatal编程技术网

Ios dateFromString一直返回nil

Ios dateFromString一直返回nil,ios,nsdate,Ios,Nsdate,其中time=“08 12,2014 08:00 PM”,并且返回零 我是新手,已经尝试搜索过所有内容,包括Apple帮助文档,但是可以在这里使用更多帮助来完成向正确方向的指示。尝试如下调整: - (NSDate*) parseTime:(NSString*) time { NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MMMM dd

其中time=“08 12,2014 08:00 PM”,并且返回零


我是新手,已经尝试搜索过所有内容,包括Apple帮助文档,但是可以在这里使用更多帮助来完成向正确方向的指示。

尝试如下调整:

- (NSDate*) parseTime:(NSString*) time
{
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat:@"MMMM dd, yyyy hh:mm a"];

    NSDate* date = [dateFormatter dateFromString:time];

    return date;
}
不要忘记在格式化程序上设置时区,以避免出现意外结果,例如:

[dateFormatter setDateFormat:@"MM dd, yyyy hh:mm a"];
@CrimsonChris发布的非常重要的链接:


您的字符串在“PM”之后真的有空格吗?这会导致问题。请使用
MM
,而不是
MMMM
。前者将匹配一个两位数的数字,后者将匹配拼写的月份名称。将此标记为书签。无论何时dateFromString返回nil,您都应该根据标准仔细验证格式字符串(如@CrimsonChris链接的)。98%的情况下,这就是造成麻烦的原因。谢谢大家,这些调整奏效了。我添加了控件,以确保没有尾随或前导空格,并且现在一切正常。非常感谢您的帮助。@HotLicks什么规格?谢谢。现在一切都好了。我添加了控件来删除尾随和前导空格。时区默认为CST,但我们控制稍后在代码中添加时区调整。谢谢你提供的这些信息,我相信这些信息稍后会派上用场。请参阅上面@CrimsonChris的链接。任何经常使用Objective-C的人都应该将其添加到书签中。
dateFormatter.timeZone  = [NSTimeZone timeZoneWithAbbreviation:@"EDT"];