我发现了这个:

功能: http://github.com/timburks/numongodb/blob/master/src/src/bson.c#l128字节: http://github.com/timburks/numongodb/blob/master/src/platform_hacks.h#l55结构: http://github.com/timburks/numongodb/blob/master/src/src/bson.h#l70

但是,我将如何将其用于我的iPhone应用程序,该应用程序将OID从服务器中获取字符串并想提取created_at时间戳?到目前为止,这就是我所拥有的。这是一个Objective-C方法,但是我可以将C代码放在我的Objective-C .m文件中吗?

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

马特

有帮助吗?

解决方案

您可以这样将OID字符串转换为NSDATE:

NSString *asd = @"4c8f695bdaf9856dbe000008";
long result;
BOOL success = [[NSScanner scannerWithString:[asd substringToIndex:8]] scanHexLongLong:&result];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:result];

其他提示

科西的答案有点过时。确保使用无符号长时间长时间使用,否则您可能会注意到奇怪的行为,并在32位和64位设备上崩溃。

NSString *asd = @"4c8f695bdaf9856dbe000008";
unsigned long long result;
BOOL success = [[NSScanner scannerWithString:[asd substringToIndex:8]] scanHexLongLong:&result];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:result];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top