【发布时间】:2012-10-30 19:14:25
【问题描述】:
我正在使用 Twitter API 下载推文数量,因为我需要在我的 iOS 应用程序中使用它们。我正在使用this function 来执行此操作。问题是我需要知道写推文的日期、月份和年份。
回来的日期是这样的:
Thu Oct 25 10:34:58 +0000 2012
但我需要这样格式的日期:
25/10/2012 10:34
所以,我想将第一种格式转换为第二种格式。我试过用 NSDate 和 NSDateFormatter 来做,用第一个 NSString 获得一个 NSDate,然后在第二个 NSString 中转换这个 NSDate,但我没有得到它。
NSArray *dateArray = [tweets valueForKey:@"created_at"];
NSString *dateString = [dateArray objectAtIndex:0]; // Thu Oct 25 10:34:58 +0000 2012
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"%@", date);
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
NSString *realDateStr = [dateFormatter stringFromDate:date];
NSLog(@"%@", realDateStr);
两个 NSLog 各自返回 null。
有人可以帮我吗?谢谢。
【问题讨论】:
-
嗯,我认为这里的想法是正确的。我不确定 NSDateFormatter 是否喜欢这样来回改变它的格式,我可能会尝试使用 2 个单独的 NSDateFormatter 来执行此操作:一个来自 twitter 日期字符串 - > NSDate 对象,然后第二个来自该 NSDate 对象 - > NSString 像“dd/MM/yyyy”。另外,也可以在
NSString *dateString = [dateArray objectAtIndex:0];之后添加NSLog(@"%@",dateString);,以确保您以您认为的方式从 twitter 获取字符串。 -
dateString 是 Thu Oct 25 10:34:58 +0000 2012,因此具有预期的格式。问题是 NSDate *date = [dateFormatter dateFromString:dateString] 行返回空值。我认为日期样式 NSDateFormatterMediumStyle 不适合格式化此 NSString,但我不知道如何使用 setDateFormat:. 格式化它
-
我也不是 100% 确定副手,我必须玩一点。 Abellina 的帖子看起来不错,试试吧。
-
记住 Xcode 调试器显示日期/时间 UTC+0
标签: ios nsstring twitter nsdate nsdateformatter