1

我知道以前有人问过这个问题(最值得注意的是:Converting NSString to NSDate (and back again)),但我遇到了困难。我正在使用 RSS 提要解析器,它以这种格式返回日期:

Fri, 23 Nov 2012 15:39:00 -0800

我希望将其转换为这种格式:

Nov. 23 2012

单独的时间格式如下:

3:39:00 PM

这是我目前拥有的代码:

NSString *RSSDate1=@"Fri, 23 Nov 2012 15:39:00 -0800";
NSDateFormatter *RSSDateFormatter = [[NSDateFormatter alloc] init];
[RSSDateFormatter setDateFormat:@"D, d M Y H:i:s O"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [RSSDateFormatter dateFromString:RSSDate1];
[RSSDateFormatter release];
NSDateFormatter *RSSDateFormatter2=[[NSDateFormatter alloc] init];
[RSSDateFormatter2 setDateStyle:NSDateFormatterShortStyle];
UIAlertView *dateAlert=[[UIAlertView alloc] init];
[dateAlert setTitle:[RSSDateFormatter2 stringFromDate:dateFromString]];
[dateAlert addButtonWithTitle:@"Dismiss"];
[dateAlert show];
[dateAlert release];

现在,字符串返回 nil,所以我打赌我的格式是关闭的。任何帮助,将不胜感激。谢谢!

4

2 回答 2

1

您可以尝试使用此配置的 NSDateFormatter 将当前日期(现在)转换为 NSString 并打印出字符串。查看输出的格式并将其与您想要的格式进行比较。差异应该会提示您需要更改哪些内容才能获得所需的格式。

于 2012-11-24T02:10:05.813 回答
0

改成,

NSString *RSSDate1 = @"Fri, 23 Nov 2012 15:39:00 -0800";
NSDateFormatter *RSSDateFormatter = [[NSDateFormatter alloc] init];
[RSSDateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzzzz"];

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [RSSDateFormatter dateFromString:RSSDate1];
NSLog(@"dateFromString = %@", dateFromString);    
[RSSDateFormatter release];

NSDateFormatter *RSSDateFormatter2 = [[NSDateFormatter alloc] init];
[RSSDateFormatter2 setDateFormat:@"MMM dd, yyyy hh:mm aaa"];
NSLog(@"dateToString = %@", [RSSDateFormatter2 stringFromDate:dateFromString]);

UIAlertView *dateAlert = [[UIAlertView alloc] init];
[dateAlert setTitle:[RSSDateFormatter2 stringFromDate:dateFromString]];
[dateAlert addButtonWithTitle:@"Dismiss"];
[dateAlert show];
[dateAlert release];

输出:

dateToString = 2012 年 11 月 23 日下午 3:39

请注意,“Fri, 23 Nov 2012 15:39:00 -0800”的格式为“EEE, dd MMM yyyy HH:mm:ss zzzzz”,“Nov 23, 2012 03:39 PM”的格式为“MMM dd , yyyy hh:mm aaa"。格式中的每个字母代表日期字符串中的相应单词。例如:- EEE 用于周五,aaa 用于 PM 等。检查此以获取有关如何进行此格式化的更多信息。

于 2012-11-24T02:12:40.933 回答