NSCalendar e NSDate incompatibilità
-
26-10-2019 - |
Domanda
Sto cercando di accedere solo le ore ei minuti informazioni da un NSDate.
Così ho usato NSCalendar di farlo. Qui di seguito è il mio codice:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm"];
NSDate *date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(kCFCalendarUnitHour | kCFCalendarUnitMinute) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSLog(@"%@",date description);
NSLog(@"Hour : %d MInutes: %d",hour,minute);
Non mi dà le giuste informazioni. Qui di seguito è il log:
2011-10-18 18: 46: 12,194 DateTest [1182: 707] 2011-10-18 13:16:12 +0000 2011-10-18 18: 46: 12,198 DateTest [1182: 707] ore: 18 minuti: 46
Un altro dubbio è quando il tempo è 18: 46: 12,194 che viene registrato come 13:16:12. Perché questa differenza?
Soluzione
Perché si vive in un fuso orario che è di 5,5 ore davanti a GMT, e il metodo di NSDate
-description
restituisce sempre una stringa formattata nel fuso orario GM.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow