-1

現在、Web サービスからデータをフェッチするアプリがあり、NSXML はそれをコア データに解析します。Core Dataへの加工。updatedAtData フィールドがありませんでした。クライアントに Web サービスに追加するよう依頼したところ、文字列として追加されました。これは、日付を解析するメソッドが行うことです:

- (void)setValue:(id)value forKey:(NSString *)key forManagedObject:(NSManagedObject *)managedObject {

    if ([key isEqualToString:@"createdAt"] || [key isEqualToString:@"updatedAt"]) {
        NSDate *date = [self dateUsingStringFromAPI:value];
        [managedObject setValue:date forKey:key];
    } else {
        [managedObject setValue:value forKey:key];
    }
}

ここまでは順調です。日付は、このメソッドを呼び出すことによって設定されます:

- (NSDate *)dateUsingStringFromAPI:(NSString *)dateString {
    [self initializeDateFormatter];
    dateString = [dateString substringWithRange:NSMakeRange(0, [dateString length]-5)];

    return [self.dateFormatter dateFromString:dateString];
}

しかし、日付は設定されず、nil が返されます。これは日付形式に関係していると思います。これはサーバーが返すものです:

1900-01-01T00:00:00

日付文字列を修正するにはどうすればよいですか?

4

1 に答える 1

1

日付形式は

@"yyyy-MM-dd'T'hh:mm:ss"

年-月-日 'T' 12 時間 (形式) : 分 : 秒を想定

したがって、コードは次のようになります

     [self.dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss"];
    return [self.dateFormatter dateFromString:dateString];
}
于 2013-04-30T17:40:05.097 に答える