2

文字列を NSDate に変換しようとしています。そして、私のコードの何が問題なのか理解できません。

   dateString = [NSString stringWithFormat:@"Sun 02 feb 14 12:30"];
    NSLog(@"dateString %@",dateString);
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
     [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    [dateFormatter setDateFormat:@"EEE dd MMM yy HH:mm"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    NSDate *dateFromString = [[NSDate alloc] init];
    dateFromString = [dateFormatter dateFromString:dateString];


    NSLog(@"dateFromString %@",dateFromString);

私はゼロになります。私は異なる日付(同じ形式)で試しましたが、常にnilです。例えば。木 07 11 月 13 12:45

誰かが間違いを見ますか?

4

2 に答える 2

5

日付のロケールがありません。日付フォーマッタのロケールを英語に設定して、日付が英語であることを確認してください。

NSString *dateString = @"Sun 02 feb 14 12:30";
NSLog(@"dateString %@",dateString);

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE dd MMM yy HH:mm"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en"] autorelease]];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];

NSLog(@"dateFromString %@",dateFromString);

allocまた、ここで日付を指定する必要はありませんNSDate *dateFromString = [[NSDate alloc] init];。ARC を使用していない場合は、NSDateオブジェクトをリークしただけです。ARC を使用している場合は、autoreleaseからを削除しNSLocaleます。

于 2013-11-05T11:01:49.653 に答える
0
 dateString = [NSString stringWithFormat:@"Sun 02 feb 14 12:30"];
    NSLog(@"dateString %@",dateString);
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    [dateFormatter setDateFormat:@"EEE dd MMM yy HH:mm"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    NSDate *dateFromString = [NSDate alloc];
    dateFromString = [dateFormatter dateFromString:dateString];

このコードは出力として次のように表示します: dateFromString 2014-02-02 12:30:00 +0000 これは正しいです。

于 2013-11-05T11:04:13.027 に答える