我想从字符串格式化日期。我可以这样做:
NSString *str = @"Fri, 13 Jan 2012 12:25:49 +0000";
NSLog(@"String: %@", str);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZZ"];
NSDate *datefrom = [df dateFromString:str];
NSLog(@"NSDate: %@", datefrom);
[df setDateFormat:@"dd/MM/yyyy"];
str = [df stringFromDate:datefrom];
NSLog(@"Formated String: %@", str);
但这没用,因为我希望能够格式化不同的日期。所以当我这样做时:
NSString *str = [[stories objectAtIndex:0] objectForKey:@"date"];
NSLog(@"String: %@", str);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZZ"];
NSDate *datefrom = [df dateFromString:str];
NSLog(@"NSDate: %@", datefrom);
[df setDateFormat:@"dd/MM/yyyy"];
str = [df stringFromDate:datefrom];
NSLog(@"String Formatada: %@", str);
它根本不起作用。我检查了[[stories objectAtIndex:0] objectForKey:@“date”]的输出,它与@“Fri,2012年1月13日12:25:49 +0000”完全相同的字符串
我比较了两个字符串来检查我是不是读错了。这是我用来比较的代码:
if ([[[stories objectAtIndex:0] objectForKey:@"date"] isEqualToString:@"Fri, 13 Jan 2012 12:25:49 +0000"]) {
NSLog(@"They are the same");
}
else NSLog(@"They are NOT the same");
但它们似乎并不相同,因为我总是得到“它们与输出不一样”,即使它们在视觉上完全相同。有什么想法吗?
答案 0 :(得分:0)
你确定[[stories objectAtIndex:0] objectForKey:@“date”]返回的对象是NSString而不是NSDate对象吗?记录它时可能看起来一样,所以告诉的唯一方法是通过记录来检查你可以做的类型:
NSLog(@“%@”,NSStringFromClass([str class]));
答案 1 :(得分:0)
如果它们不相同,则问题是字符串而不是dateFormatter。
NSLog()就是这样:
NSString *str = [[stories objectAtIndex:0] objectForKey:@"date"];
NSLog(@"String: %@", str);