我正在尝试使用STTwitter库格式化我从twitter获得的日期。
然而,到目前为止我尝试过的代码没有用。
从twitter获取日期的代码:
NSString *dateString = [status valueForKey:@"created_at"];
这会返回发布推文的时间,日期,时区和年份。
我尝试使用以下代码进行转换并使其更整洁:
NSDateFormatter *dateFormatter =[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MMddHHmm"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"%@", dateFromString);
dateFormatter =[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd MMMM' at 'hhmm a"];
NSString *mydate=[dateFormatter stringFromDate:dateFromString];
然后尝试将结果放在文本标签中:
cell.detailTextLabel.text = my date;
我尝试过日期格式化程序的许多不同变体,但没有一个有效,我不明白为什么。
感谢您的帮助:)
答案 0 :(得分:11)
您使用的日期格式甚至不会关闭结果中使用的日期字符串,例如Fri Nov 18 20:35:49 +0000 2011
。
NSString *dateStr = @"Fri Nov 18 20:35:49 +0000 2011";
NSDateFormatter *dateFormatter= [NSDateFormatter new];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss Z yyyy"];
NSDate *date = [dateFormatter dateFromString:dateStr];
真正的诀窍在于使用的语言环境,因为日期本地化为英语。
答案 1 :(得分:4)
STTwitter有一个category:
NSString *s = [tweet valueForKey:@"created_at"];
NSDate *date = [[NSDateFormatter stTwitterDateFormatter] dateFromString:s];
答案 2 :(得分:2)
我用Swift实现它创建了一个要点: https://gist.github.com/appzzman/62339fcd10bbe8fce256它需要Twitter日期,并允许您指定日期的输出格式。
import UIKit
func parseTwitterDate(twitterDate:String, outputDateFormat:String)->String?{
let formatter = NSDateFormatter()
formatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
var indate = formatter.dateFromString(twitterDate)
var outputFormatter = NSDateFormatter()
outputFormatter.dateFormat = "hh:mm a dd:MM:yy"
var outputDate:String?
if let d = indate {
outputDate = outputFormatter.stringFromDate(d)
}
return outputDate;
}
var str = "Wed Sep 02 19:38:03 +0000 2009"
var outputDateFormat = "hh:mm a dd:MM:yy"
parseTwitterDate(str, outputDateFormat)