11

私はこの文字列を持っています----> 2012年12月16日日曜日15:30:22 +0000

NSDateに変換したいです。私は以下のコードを試しましたが、それは私にnullを与えています

NSDateFormatter *df = [[NSDateFormatter alloc] init];

[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];

NSDate *date = [[NSDate alloc] init];

date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"];

NSLog(@"date: %@", date);

問題が発生していませんか?

任意のガイダンスplz

4

3 に答える 3

13

フォーマッタのdateFormatは、提供する文字列の形式と一致する必要があります。

したがって、このようなものが機能するはずです

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ";

NSLog(@"%@", [formatter dateFromString:@"Fri, 18 Jan 2013 15:30:22 +0000"]);

指定子の実際の意味を調べるには、Unicode Technical Standard #35を確認してください。

于 2013-01-18T12:14:57.887 に答える
3

このコードを試してください

NSDateFormatter *df = [[NSDateFormatter alloc] init];

    [df setDateFormat:@"EEEE, dd MMM yyyy"];

    NSDate *date = [[NSDate alloc] init];

    date = [df dateFromString: @"Sun, 16 Dec 2012"];

    NSLog(@"date: %@", date);

それがあなたを助けることを願っています..

編集 :-

あなたの弦のために

NSDateFormatter *df = [[NSDateFormatter alloc] init];

    [df setDateFormat:@"EEEE, dd MMM yyyy HH:mm:ss z"];

    NSDate *date = [[NSDate alloc] init];

    date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"];

    NSLog(@"date: %@", date);
于 2013-01-18T12:11:18.893 に答える
2

これを試して、文字列からNSDateを取得してください

- (NSDate*) dateFromString:(NSString*)aStr
{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
    //[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss a"];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

    NSLog(@"%@", aStr);
    NSDate   *aDate = [dateFormatter dateFromString:aStr];
    [dateFormatter release];
    return aDate;
}

それは私にとってはうまくいきます。

于 2013-01-18T12:13:59.027 に答える