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 方法,但我可以将 c 代码放在我的 Objective-c .m 文件中吗?

- 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

Kossi 的回答有点过时了。确保使用 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 回答