2012-03-23 4 views
0

ich ein NSDate wie Datum erhalten möchten(). GetTime() in Java, miliseconds seit 1970 Aber wenn ich es tue, ich verloren Präzision und ich bekomme ein anderes DatumNSDate Präzision verloren, wenn auf NSNumber Umwandlung miliseconds

NSDate *nowDate = [NSDate date]; 
NSNumber *nowLong = [[NSNumber numberWithFloat: 1000.0 * [nowDate timeIntervalSince1970]] retain]; 
NSLog(@"nowDate %@", nowDate); 
NSLog(@"nowLong %f", [nowLong doubleValue]); 

NSNumber *nowNumber = [NSNumber numberWithDouble:([nowLong doubleValue]/1000.0)]; 
NSTimeInterval timeInterval = [nowNumber doubleValue]; 
NSDate *nowDateFromLong = [NSDate dateWithTimeIntervalSince1970:timeInterval]; 
NSLog(@"nowDateFromLong %@", nowDateFromLong); 

// Ausgabekonsole

nowDate 2012-03-23 ​​18:34:42 +0000

nowLong 1332527628288,000000

nowDateFro mLong 2012-03-23 ​​18:33:48 +0000

Ich brauche wirklich das Datum in Millisekunden wie Java, so würde jede Hilfe geschätzt werden!

Antwort

1

einfach konvertieren zu verdoppeln, nicht schwimmen:

NSNumber * nowLong = [[NSNumber numberWithDouble: 1000,0 * [nowDate timeIntervalSince1970]] behalten];

+0

Hoppla, danke. Ich bin ein Idiot, den ich den ganzen Nachmittag ausprobiert habe! Peinlich genau jetzt xD – nirvik