我有一个简单的应用程序,我在其中解析日期和rss feed并在tableview中显示它。默认日期字符串提供以下输出:
Sun,2012年11月18日09:21:46 +0000
虽然我希望它提供如下输出:
Sun,2012年11月18日
并跳过包含时间的其余部分。
这就是我所做的,但它什么都不返回。
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, MMM d, ''yy"];
NSDate *receivedDate = [df dateFromString:currentString];
[self setPubTime:[df stringFromDate:receivedDate]];
答案 0 :(得分:3)
NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
[df1 setDateFormat:@"EEE, d MMM yyyy hh:mm:ss ZZZZ"];
NSDate *newDate = [df1 dateFromString:currentSring];
NSDateFormatter *df2 = [[NSDateFormatter alloc] init];
[df2 setDateFormat:@"EEE,d MMM yyyy"];
NSString *dateString = [df stringFromDate:newDate];
NSLog(@"date is %@",dateString);
NSDate *formattedDate = [df2 dateFromString:dateString];
现在,如果您想将日期作为字符串,只需删除最后一个语句即可。请记住,如果NSLog是日期变量,则无法通过NSLog检查日期格式。它只会以GMT格式打印。要检查它,您需要将日期转换为字符串,如上所述。
现在如果日期中没有零paddind,你必须给'dd'而不是'd',如果时间是24hr格式,则给'HH'而不是'hh'。请注意,df1的格式应设置为与'currentString'完全相同,包括任何空格等。