2013-01-08 58 views
4

下面是我的代碼NSDateFormatter將返回空日期

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名字我得到的輸出作爲Mon, 7 Jan 2013 15:30:00 CST,但是當我在NSDateFormatter通過這個字符串我得到null值我不知道爲什麼我想的date formatsmanycombinations,但我不能解決這個問題,誰能幫我

+0

,你得到CST,應該例如0530 –

+0

時區,我不知道這是否是原因,但如果它顯示1月7日則應該是「d MMM「不是」MMM「 – Fogmeister

+0

我從xml得到的,我如何改變它在時區 –

回答

1

我解決了我的問題,按照Per Prateek的評論,現在它爲我工作......感謝Prateek。

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

用途:

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

沒有它不起作用 –

+0

我檢查了我的系統,只有當我發佈。 –

0

使用下面的方法獲取NSDateNSString日期

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組件看到這個帖子我的博客NSDate-formate-info-for-iphone-sdk

+0

@PradeepKumar你明白了嗎?現在我只是更新答案,它的返回日期是2013-01-07 10:00:00 +0000輸出.. –

+0

@PradeepKumar看到我從這個鏈接的另一個答案http://stackoverflow.com/questions/13251633/convert-字符串到nsdate與自定義格式/ 13251656#13251656像你的問題 –

0

使用此代碼...

- (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; 
}