1

次の方法で日付を返す Web サービスがあります。

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

Web サービスのレイアウト

"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 に答える