Iphone NSDateFormatter正在返回空日期

Iphone NSDateFormatter正在返回空日期,iphone,ios,ipad,Iphone,Ios,Ipad,下面是我的代码 NSString *dateandtime =[NSString stringWithFormat:@"%@",self.eventtime]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; NSDate *dateFromString = [[NS

下面是我的代码

 NSString *dateandtime =[NSString stringWithFormat:@"%@",self.eventtime];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
    NSDate *dateFromString = [[NSDate alloc] init];
    dateFromString = [dateFormatter dateFromString:dateandtime];
如果我打印我的self.event name,我得到的输出是
Mon,2013年1月7日15:30:00 CST
,但是当我在
NSDateFormatter
中传递这个字符串时,我得到的是
null
值,我不知道为什么我尝试了
许多
日期格式的组合,但我无法解决它,有谁能帮我使用:

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"];

使用以下方法从
NSString
日期获取
NSDate

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [self convertStringToDate:dateandtime];
将以下方法粘贴到
.m
文件中

-(NSDate *)convertStringToDate:(NSString *) date {
        NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
        NSDate *nowDate = [[[NSDate alloc] init] autorelease];
        [formatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss 'CST'"];// set format here  format in which the date should be

        date = [date stringByReplacingOccurrencesOfString:@"+0000" withString:@""];
        nowDate = [formatter dateFromString:date];
        // NSLog(@"date============================>>>>>>>>>>>>>>> : %@", nowDate);
        return nowDate;
}
有关
NSDate
组件的更多信息,请参阅我博客的这篇文章使用此代码

- (NSString *)formattedDate:(NSString*)dateSte {

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [NSTimeZone resetSystemTimeZone];
    NSTimeZone *gmtZone = [NSTimeZone systemTimeZone];
    [dateFormatter setTimeZone:gmtZone];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSDate *date = [dateFormatter dateFromString:dateSte];

    [dateFormatter setDateFormat:@"EEE,MMM d,''yyyy"];
    NSString *strDate = [dateFormatter stringFromDate:date];

    return strDate;
}

我根据Prateek的评论解决了我的问题,现在它对我有效了…谢谢Prateek

in your self.event, you are getting CST, it should be time zone for example +0530

在你的self.event中,你得到的是CST,它应该是时区,例如+0530,我不知道这是否是原因,但如果它显示的是1月7日,那么应该是“d MMM”而不是“dd MMM”,我从xml得到的,我如何将其更改为时区,但它不是文字我想你需要的是:为什么NSDateFormatter返回零?[1][1]:我检查了我的系统,然后才发布。@PradeepKumar,你收到了吗??现在我刚刚更新了答案,它的返回日期是2013-01-07 10:00:00+0000输出。@PradeepKumar从这个链接看到我的另一个答案,就像你的问题一样