2009-11-27 9 views

risposta

21

io non sono sicuro perché gli esempi di Apple mostrano la AM/PM in minuscolo, ma è facile fare la stringa della data minuscole:

NSDateFormatter *detailsTimeFormatter = [[NSDateFormatter alloc] init]; 
[detailsTimeFormatter setTimeStyle:NSDateFormatterShortStyle]; 
NSLog(@"%@",[[detailsTimeFormatter stringFromDate:[NSDate date]] lowercaseString]); 
+0

Grazie, ha funzionato perfettamente. È strano che la documentazione mostri l'output sbagliato. Ho anche scoperto in modalità 12 ore c'è uno zero iniziale prima dell'ora, 01:49 pm. Fastidiosamente non ho capito come rimuoverlo. Sembra correlato alle impostazioni di sistema del dispositivo perché l'orologio nella parte superiore è lo stesso e non è lì sul simulatore. – Jim

+2

@Jim è un po 'in ritardo, ma se si dovesse impostare un formato di data personalizzato (è tuttavia scoraggiato), ad esempio: 'date.dateFormat = @" h: mm a ";' Si otterrebbe la cifra automatica singola o doppia per le ore. –

+0

Questo è antico, ma pensi che ci sia un modo per rimuovere lo spazio tra 'h: mm' e' a' e mantenere le lettere minuscole am/pm usando un 'NSDateFormatter'? – NSTJ

144

È possibile modificare i simboli AM e PM su un NSDateFormatter come segue:

[dateFormatter setAMSymbol:@"am"]; 
[dateFormatter setPMSymbol:@"pm"]; 
+4

Funziona alla grande - dovrebbe essere la risposta accettata. – capikaw

+0

@arigold - Hai il codice con cui stai avendo un problema? – michaelslater

+0

Ho cancellato il commento - l'ho postato nelle mie ricerche prima che mi rendessi conto che il font non aveva caratteri minuscoli ... grazie per il check-in, comunque. –