3

私はこれを見つけました:

関数: http://github.com/timburks/NuMongoDB/blob/master/src/bson.c#L128 バイト: http://github.com/timburks/NuMongoDB/blob/master/src/platform_hacks.h#L55 構造体: http://github.com/timburks/NuMongoDB/blob/master/src/bson.h#L70

しかし、サーバーから oid を文字列として取得し、created_at タイムスタンプを抽出したい iPhone アプリでこれをどのように使用すればよいでしょうか? これは私がこれまでに持っているものです。これは Objective-C のメソッドですが、Objective-c .m ファイルに C コードを入れることはできますか?

- timeFromBsonOid:(NSString *)oid {
    time_t out;
    memcpy(&out, oid, 4);
    return out;
}

マット

4

2 に答える 2

6

次のように、oid 文字列を NSDate に変換できます。

NSString *asd = @"4c8f695bdaf9856dbe000008";
long result;
BOOL success = [[NSScanner scannerWithString:[asd substringToIndex:8]] scanHexLongLong:&result];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:result];
于 2010-09-29T14:34:18.797 に答える
0

コッシの答えは少し古くなっています。代わりに unsigned long long を使用してください。そうしないと、32 ビットおよび 64 ビット デバイスで奇妙な動作やクラッシュが発生する可能性があります。

NSString *asd = @"4c8f695bdaf9856dbe000008";
unsigned long long result;
BOOL success = [[NSScanner scannerWithString:[asd substringToIndex:8]] scanHexLongLong:&result];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:result];
于 2016-07-14T20:14:08.377 に答える