NSDateFormatter - 从Twitter解析日期JSON API
我想从Twitter API结果转换为NSDate对象使用NSDateFormatter字符串。我发现的是,NSDateFormatter只是返回我的机器的当前日期/时间。任何帮助将不胜感激!NSDateFormatter - 从Twitter解析日期JSON API
这里的字符串的样子进入我的功能:
周六,2010年12月11日1时35分52秒+0000
而这里的功能:
+(NSDate*)convertTwitterDateToNSDate:(NSString*)created_at
{
// Sat, 11 Dec 2010 01:35:52 +0000
static NSDateFormatter* df = nil;
df = [[NSDateFormatter alloc] init];
[df setTimeStyle:NSDateFormatterFullStyle];
[df setFormatterBehavior:NSDateFormatterBehavior10_4];
[df setDateFormat:@"EEE, d LLL yyyy HH:mm:ss Z"];
NSDate* convertedDate = [df dateFromString:created_at];
[df release];
return convertedDate;
}
这里是返回的日期:
2010-12-10 17:58:26 -0800
这恰好是我现在计算机的日期和时间。
* 注意! *在分配DateFormater时将使用autorelease的内存管理更改为函数中的显式版本。当在一个巨大的循环中调用这个函数时,我发现它在autorelease时开始失败(我猜测汽车部分没有足够快地释放),但是改变它以解决问题。
我认为是对的。因为原始字符串在+0000时区,结果日期在-0800时区。所以,如果你仔细看着它们,你会发现是同一时间。
当您打印日期如[日期说明]时,它会打印在当地时区,我相信但时间是绝对的。由于NSDate只包含秒,而不包含日历,而不包含时区信息。
(打印字符串相对于本地时区,但真正的日期是绝对的)
谢谢,我觉得我只是没有面试的问题:)好东西我是一名程序管理员,而不是开发人员! – 2010-12-11 19:39:19
你也可以说调用这个方法,你是如何显示结果的代码? – Anna 2010-12-11 03:57:29
您的代码适用于我。我会检查你处理返回值的位置。 (虽然你的代码每次运行时都会泄漏一个NSDateFormatter) – 2010-12-11 07:08:21
谢谢史蒂夫,内存泄漏固定! – 2010-12-11 19:40:08