我在我的应用程序中使用了AFFeedParser来解析来自不同HTML页面的文章。更改日期格式为iPhone中的特殊格式
通过分析,我得到了写article DATE like
"Thu, 06 Dec 2012 17:44:22 +0000\n\t\t"
为字符串。
如何将其转换成像Thursday,December 06,2012
这样的日期?
我在我的应用程序中使用了AFFeedParser来解析来自不同HTML页面的文章。更改日期格式为iPhone中的特殊格式
通过分析,我得到了写article DATE like
"Thu, 06 Dec 2012 17:44:22 +0000\n\t\t"
为字符串。
如何将其转换成像Thursday,December 06,2012
这样的日期?
,请参看日志还,我知道了......
NSString *yourStringDate = @"Thu, 06 Dec 2012 17:44:22 +0000\n\t\t";
NSString *str =[yourStringDate stringByReplacingOccurrencesOfString:@"\n" withString:@""];
str =[str stringByReplacingOccurrencesOfString:@"\t" withString:@""];
[str retain];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"];
NSDate *date = [dateFormatter dateFromString: str];
dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEEE,LLLL dd,yyyy"];
NSString *convertedString = [dateFormatter stringFromDate:date];
NSLog(@"Converted String : %@",convertedString);
输出是:转换后的字符串:周四,06,2012十二月
也看到我的另一个答案为GET的NSDate从字符串但在这一点上,你只是像上面设置你的格式,只是改变格式从... convert-string-to-nsdate-with-custom-format
我希望这对你有所帮助....
我变得空作为转换的字符串 – user1673099
@ user1673099看到这给了正确的输出,只需复制并粘贴此代码在您的方法或viewWillAppear也... :)我编辑整个代码花花公子...现在复制并使用它。 .. –
在这里你得到空值bcoz我们没有为它的伙计设置适当的格式... –
找到了答案:
NSString *[email protected]"Thu, 06 Dec 2012 17:44:22 +0000\n\t\t";
NSString *trimDate=[[inputDate componentsSeparatedByString:@"+"]objectAtIndex:0];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init] ;
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:trimDate];
[dateFormatter setDateFormat:@"EEEE, MMMM dd,yyyy"];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"dateString = %@", dateString);
输出:
dateString = Thursday,December 06,2012
第2行的解释:他创建了一个由“\”分隔的“NSArray”,它返回“Thu,2012年12月6日17:44:22 +0000”,“n”,“t”, “t”并选择第一个元素。 –
否.... @“\”无法使用,所以@“\\”一个额外\被用作转义字符。然后星期四,'06 Dec 2012 17:44:22 + 0000'被存储在存储在trimDate中的数组的第一个索引(即0)中,之后它很简单。 –
正如你所看到的,我翻译了@“\\”给人类“\”,这更容易理解,因为不是每个人都知道什么是严格意义上的手段。其次,我尝试创建一个包含4个元素的伪数组:1:“Thu,2012年12月6日17:44:22 +0000”| 2:“n”| 3:“t”| 4:“t”。 (对不起,我的第一条评论中的“+0000”出现在下一行) –
NSString *[email protected]"Thu, 06 Dec 2012 17:44:22 +0000\n\t\t";
NSString *getDate=[[dateStr componentsSeparatedByString:@"\\"]objectAtIndex:0];
在这里,你应该照顾的日期和时间的本地代表的,所以你应该使用。
NSDateFormatter dateFormat = [NSDateFormatter dateFormatFromTemplate:@"yMMMMd" options:0 locale:[NSLocale systemLocale]];
NSDate *date=[dateFormat dateFromString:getDate];
NSLog(@"dateString = %@", [dateFormat stringFromDate:date]);
谷歌或SO,数以千计的类似这样的回答是有..或检查的NSDate文档https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes /NSDate_Class/Reference/Reference.html –
你可以检查我的答案与ios不兼容。 –