NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
[_dateFormatter setDateFormat:@"dd-MM-yy HH:mm"];
NSString *dateString = [_dateFormatter stringFromDate:date];
NSLog(@"Date: %@ formatted: %@", date, dateString);
[_dateFormatter release];
Mi dà data sbagliata formattato:NSDateFormatter con il fuso orario predefinito dà una data diversa rispetto NSDate metodo descrizione
Data: 2013/01/31 18:00:00 +0000 formattato: 31-01-13 19:00 (dal timestamp: 1359655200.000000)
Strumento di conversione online: http://www.onlineconversion.com/unix_time.htm indica che la prima data è corretta: 2013-01-31 18:00:00 +0000.
Perché NSDateFormatter produce data diversa NSLog? [NSDate description]
non deve usare defaultTimeZone quando si stampa su console? Ottengo lo stesso errore con [_dateFormatter setTimeZone:[NSTimeZone localTimeZone]]
; e [_dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]
;
[_dateFormatter setTimeZone: [NSTimeZone timeZoneWithAbbreviation: @ "UTC"]]; risolto. – Lukasz
Solo FTI, generalmente è meglio usare 'timeZoneWithName:' invece di 'timeZoneWithAbbreviazione:'. Per UTC non importa, ma nella maggior parte dei casi il nome è la scelta migliore. –
Il motivo per cui alcune abbreviazioni sono le stesse, ad esempio EST è in Australia e negli Stati Uniti. – migs647