2
我想从NSString转换为NSDate使用getObjectValue:forString:range:error:
。该函数返回成功并且没有错误,但返回的日期不正确。NSDateFormatter - getObjectValue:forString:范围:错误:返回不正确的日期
具体而言,我将@"1989-12-31T00:00:00+00:00"
传递给下面的函数,返回的日期是1970-01-01 00:00:000 +0000
。有什么想法吗?
+ (NSDate *) convertStringToDate:(NSString *) dateString
{
NSDate* date = nil;
NSError* error = nil;
NSRange range = NSMakeRange(0, [dateString length]);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
BOOL success = [dateFormatter getObjectValue:&date forString:dateString range:&range error:&error];
[dateFormatter release];
return success ? date : nil;
}
在此先感谢。
感谢您的回复。这个解决方案的问题是(1)我不能保证日期的格式(所以我相信我必须使用getObjectValue:forString:range:error :)。 (2)在问题中显示的示例中,如果我想明确设置日期格式,则必须删除dateString中的最后一个“:”。 NSDateFormat似乎并不期望最后的“:”。这可能是一个错误。 – 2011-05-29 14:46:36
@Tolu Fapohunda关于2.我认为有修饰符的组合允许这样做。文档并不是非常简单,所以只需要很少的实验。 – TheBlack 2011-05-29 21:03:39