1

我正在尝试使用 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;

我尝试了许多不同的日期格式化程序变体,但没有一个有效,我不知道为什么。

谢谢你的帮助 :)

4

3 回答 3

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];

真正的诀窍在于使用的语言环境,因为日期是用英语本地化的。

于 2014-02-26T15:16:28.100 回答
4

STTwitter 有一个类别

NSString *s = [tweet valueForKey:@"created_at"];
NSDate *date = [[NSDateFormatter stTwitterDateFormatter] dateFromString:s];
于 2014-02-27T00:15:00.450 回答
3

我用它的 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)
于 2015-04-14T17:46:22.810 回答