Pregunta

he encontrado esto:

Función: http://github.com/timburks /NuMongoDB/blob/master/src/bson.c#L128 bytes: http://github.com/timburks/NuMongoDB/ blob / maestro / src / platform_hacks.h # L55 struct: http://github.com/timburks/NuMongoDB/ blob / maestro / src / bson.h # L70

Pero, ¿cómo exactamente iba a utilizar esto para mi aplicación para el iPhone que obtiene el OID como una cadena desde el servidor y quiere extraer la marca de tiempo created_at? Esto es lo que tengo hasta ahora. Es un método de Objective-C, pero puedo poner el código c en mi archivo .m Objetivo-c?

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

Matt

¿Fue útil?

Solución

Puede convertir la cadena OID a NSDate como esto:

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

Otros consejos

La respuesta de Kossi un poco fuera de fecha. Asegúrese de utilizar unsigned long long en lugar de lo contrario es posible que observe un comportamiento extraño y se estrella en los dispositivos 32 y 64 bits.

NSString *asd = @"4c8f695bdaf9856dbe000008";
unsigned long long result;
BOOL success = [[NSScanner scannerWithString:[asd substringToIndex:8]] scanHexLongLong:&result];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:result];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top