2011-03-19 14 views

Respuesta

29

Deberá usar el siguiente método para convertir seg. en milisegundos:

([NSDate timeIntervalSinceReferenceDate] * 1000) 
+1

Para más se puede ir a través de la ya publicación discutida http://stackoverflow.com/questions/889380/how-can-i-get-a-precise-time-for-example-in-milliseconds-in-objective-c – Jhaliya

+0

Esto no hace nada para mejorar la EXACTITUD de esta fecha. Todo lo que está haciendo es tomar el valor y convertirlo en unidades de milisegundos. Si el nivel de precisión era 100 ms antes, es 100 ms después. Así que ten cuidado, esta respuesta es engañosa. – bkbeachlabs

+0

Lea detenidamente la descripción del problema antes de comentar, el usuario quería convertir al milisegundo y había aceptado la respuesta. – Jhaliya

4

Kees tiene razón sobre el cálculo milisegundos, pero es posible que desee considerar en el que sólo la parte fraccionaria del intervalo de tiempo que se puede utilizar NSDateComponents para obtener todos los componentes de tiempo hasta el segundo. Si utiliza algo como lo siguiente, puede agregar un componente de milisegundos a eso:

/*This will get the time interval between the 2 
    dates in seconds as a double/NSTimeInterval.*/ 
double seconds = [date1 timeIntervalSinceDate:date2]; 

/*This will drop the whole part and give you the 
    fractional part which you can multiply by 1000 and 
    cast to an integer to get a whole milliseconds 
    representation.*/ 
double milliSecondsPartOfCurrentSecond = seconds - (int)seconds; 

/*This will give you the number of milliseconds accumulated 
    so far before the next elapsed second.*/ 
int wholeMilliSeconds = (int)(milliSecondsPartOfCurrentSecond * 1000.0); 

Espero que haya sido útil.

6

Para aquellos que quieran obtener el tiempo en segundos mili (como en Java)

double timestamp = [[NSDate date] timeIntervalSince1970]; 
int64_t timeInMilisInt64 = (int64_t)(timestamp*1000); 

(probado con iOS7 y el simulador de iPhone usando Xcode 5)

Cuestiones relacionadas