1

我有一个网络服务,它通过以下方式返回我的日期。

Wed Oct 31 11:59:44 +0000 2012

但我希望它以这种方式还给它

31-10-2012 11:59

我知道应该使用 NSDateFormatter 来完成。但我现在不知道如何以正确的方式实现它。

我有这样的东西。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
    NSDate *date = [dateFormatter dateFromString:[genkInfo objectForKey:DATE]];

有谁能够帮助我?

亲切的问候。

此刻的代码

  NSDateFormatter *f = [[NSDateFormatter alloc] init];
    [f setDateFormat:@"E MMM d hh:mm:ss Z y"];
    NSDate *date = [f dateFromString:@"Wed Oct 31 11:59:44 +0000 2012"];
    NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
    [f2 setDateFormat:@"dd-MM-y hh:mm"];
    [f2 setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    NSString *date2 = [f2 stringFromDate:date];

网络服务布局

"text": "KRC Genk | Zaterdag is er opnieuw een open stadiontour http://t.co/tSbZ2fYG",
"created_at": "Fri Nov 02 12:49:34 +0000 2012"
4

2 回答 2

2

第 1 步:创建一个 NSDateFormatter,通过将格式设置为“服务器字符串”的格式,将您的字符串从服务器转换为 NSDate 对象

NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"E MMM d hh:mm:ss Z y"];
NSDate *date = [f dateFromString:@"Wed Oct 31 11:59:44 +0000 2012"];

第 2 步:使用所需的输出字符串创建另一个 NSDateFormatter,并使用新的 NSDateFormatter 将新的 NSDate 对象转换为字符串对象

NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
[f2 setDateFormat:@"dd-MM-y hh:mm"];
[f2 setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *s = [f2 stringFromDate:date];

desiredformat = s;

PS我不确定f格式,请查看此链接 http://www.developers-life.com/nsdateformatter-and-uifont.html

于 2012-11-02T13:46:07.547 回答
0

用于解析原始日期的格式字符串存在一些问题。而且语言环境设置不正确。无需设置时区。这将从提供​​的日期/时间字符串进行处理。

NSDateFormatter *f = [[NSDateFormatter alloc] init];
NSLocale *posix = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[f setLocale:posix];
[f setDateFormat:@"EEE MMM dd hh:mm:ss Z yyyy"];
NSDate *date = [f dateFromString:@"Wed Oct 31 11:59:44 +0000 2012"];

每当您解析(或格式化)不是来自用户或为用户提供的固定格式日期时,您都希望使用 en_US_POSIX 语言环境。不要使用 en_US_POSIX 语言环境向用户显示日期或时间。

于 2012-11-02T15:13:50.937 回答