2012-03-27 19 views
0

Ich entwickle eine APP, wann immer ein Benutzer einige Details hinzufügt, die Aufzeichnung in Datenbank wie geschaffenes Datumzeit im 24 Stundenformat gespeichert erhält. Aber zum Zweck der Anzeige zeige ich die Uhrzeit im 12-Stunden-Format an. Ich habe das Format "dd-MMM-yyyy hh: mm a" verwendet, um die Zeit anzuzeigen, und es wird korrekt auf meinem Bildschirm angezeigt, aber das Problem tritt immer dann auf, wenn der Benutzer das Datums-/Uhrzeitformat von 12 Stunden auf 24 Stunden umstellt. Meine App zeigt die Uhrzeit im 24-Stunden-Format an. Kann jemand plz mir helfen, dass, obwohl der Benutzer die Einstellung zu 24-Stunden-Format in Einstellung ändern. Das Zeitformat sollte sich nicht von 12 auf 24 Stunden ändern.wie man Zeit im 12 Stundenformat im iphone zeigt

+0

Wenn der Benutzer das Zeitformat von 12 auf 24 Stunden ändert, ist das, weil er/sie es so mag. Sie sollten die Wahl des Benutzers respektieren. – JeremyP

Antwort

2

Im Allgemeinen sollten Sie dem Benutzer erlauben zu wählen, wie er sie anzeigen möchte.

mit Ihrem Code, sollten Sie in der Lage sein, dies zu tun:

dateFormat = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSLocale *twelveHourLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]; 
dateFormat.locale = twelveHourLocale; 
CreatedDate = [dateFormat dateFromString:[NSString stringWithFormat:@"%@",[serviceAntInstance.arr_CreatedDate objectAtIndex:indexPath.row]]]; 
[dateFormat setDateFormat:@"dd-MMM-yyyy hh:mm a"]; 
createdDateConvert = [dateFormat stringFromDate:CreatedDate]; 
+0

Hier ist der Code, ob ich das Datetime-Format konvertieren/* um das Datum in ein anderes Format zu konvertieren */ dateFormat = [[[[NSDateFormatter alloc] init] autorelease]; [DatumFormat SetDateFormat: @ "JJJJ-MM-TT HH: mm: ss"]; CreatedDate = [DatumFormat DatumFromString: [NSString StringWithFormat: @ "% @", [ServiceAntInstance.arr_CreatedDate ObjektAtIndex: IndexPath.row]]]; [dateFormat setDateFormat: @ "TT-MMM-JJJJ hh: mm a"]; createdDateConvert = [DatumFormat StringFromDate: CreatedDate]; –

+0

Das Zeitformat ist für das Gebietsschema des Benutzers angegeben. Es sind bevorzugte Einstellungen, und Ihre Anwendung sollte Datumsinformationen so darstellen, dass es für den Benutzer bequem sein muss, sie wahrzunehmen. Im Allgemeinen sollten Sie das Format NICHT auf 12 Stunden ändern. –

+0

Ich habe die Antwort bearbeitet, um zu zeigen, wie ein Gebietsschema mit 12-Stunden-Format erzwungen wird. Dies ist aus der Apple-Dokumentation: https://developer.apple.com/library/ios/#qa/qa2010/qa1480.html – rosslebeau

2

Bitte beachten Sie auch diese:

NSDateFormatter *formatterTemp = [[NSDateFormatter alloc] init]; 
[formatterTemp setLocale:[NSLocale currentLocale]]; 
[formatterTemp setDateStyle:NSDateFormatterNoStyle]; 
[formatterTemp setTimeStyle:NSDateFormatterShortStyle]; 
[formatter setDateFormat:@"MM/dd/yyyy hh:mm a"]; 
NSString *dateString = [formatter stringFromDate:[NSDate date]]; 

NSRange amRange = [dateString rangeOfString:[formatterTemp AMSymbol]]; 
NSRange pmRange = [dateString rangeOfString:[formatterTemp PMSymbol]]; 
BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound); 
[formatterTemp release]; 
NSLog(@"%@\n",(is24h ? @"YES" : @"NO")); 
1

Wie wäre es Nutzung der bestehenden Gegenden zu nehmen?

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 

[formatter setLocale: locale]; 
[formatter setTimeStyle: NSDateFormatterShortStyle]; 

NSString *result = [formatter stringFromDate: [NSDate date]]; 

[formatter release]; 
[locale release]; 
Verwandte Themen