dateFromString返回nil

时间:2011-06-07 12:30:01

标签: iphone xcode nsdate nsdateformatter

这是我的 NSString

myDate : 2011-06-07 11:23:47  0000

这是代码,

NSTimeZone *currentDateTimeZone = [NSTimeZone defaultTimeZone];
NSDateFormatter *currentDateFormat = [[NSDateFormatter alloc]init];
[currentDateFormat setTimeZone:currentDateTimeZone];
[currentDateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
NSDate *tempDate = [currentDateFormat dateFromString:second];

tempDate 获取值nil 有人可以帮忙吗?

4 个答案:

答案 0 :(得分:3)

你是如何获得日期字符串的?它需要2011-06-07 11:23:47 +0000才能发挥作用。

答案 1 :(得分:2)

试试这个, 这是从字符串中获取日期的功能。

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setFormatterBehavior:NSDateFormatterBehavior10_4];
[df setDateFormat:@"EEE, dd MMM yy HH:mm:ss"];
NSDate *convertedDate = [df dateFromString:stringDate];
[df release];
// [convertedDate description]
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setAMSymbol:@"AM"];
[formatter setPMSymbol:@"PM"];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm:a"];
return [formatter stringFromDate:convertedDate];

答案 2 :(得分:1)

我认为,它与TimeZone无关,但设备24小时设置。 开发人员必须检查设备时间是否为24小时,然后他们应该使用HH,如果设备时间是12小时,那么他们应该使用hh。

答案 3 :(得分:0)

NSTimeZone *currentDateTimeZone = [NSTimeZone defaultTimeZone];
NSDateFormatter *currentDateFormat = [[[NSDateFormatter alloc]init] *autorelease*];
[currentDateFormat setTimeZone:currentDateTimeZone];
[currentDateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss *ZZZZ*"];
NSDate *tempDate = [currentDateFormat dateFromString:second];

添加 自动释放 ZZZZ Z的内容。