0

我有一个简单的应用程序,我在其中解析日期和 rss 提要并将其显示在表格视图中。默认日期字符串给出以下输出:

2012 年 11 月 18 日星期日 09:21:46 +0000

虽然我希望它给出如下输出:

2012 年 11 月 18 日,星期日

并跳过包含时间的其余部分。

这就是我所做的,但它什么也没返回。

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, MMM d, ''yy"];


NSDate *receivedDate = [df dateFromString:currentString];
[self setPubTime:[df stringFromDate:receivedDate]];
4

1 回答 1

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 检查日期格式。它只会以 GMT 格式打印。要检查它,您需要如上所述将日期转换为字符串。

现在,如果日期中没有零填充,则必须给出“dd”而不是“d”,如果时间是 24 小时格式,则给出“HH”而不是“hh”。请注意,df1 的格式应设置为与您的“currentString”完全相同,包括任何空格等。

于 2013-06-19T05:58:07.847 回答