軍事時間で保存された日付を表す文字列があります。この文字列を 12 時間でラベルに表示したいと考えています。ここに私のコードスニペットがあります:
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:timeZone];
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
NSLog(@"Current Date: %@", [dateFormat stringFromDate:[NSDate date]]);
NSLog(@"Sent date: %@",[myPlanData valueForKey:@"planDate"]);
NSDate *aDate =[dateFormat dateFromString:[myPlanData valueForKey:@"planDate"]];
NSLog(@"Converted date is: %@",aDate);
NSString *planDateString = [dateFormat stringFromDate:aDate];
NSLog(@"The converted date string is: %@",planDateString);
planDateLabel.text=planDateString;
出力は次のとおりです。
現在の日付: 06/28/2012 10:08:48 - (私の日付フォーマッターは正しいように見えますか?)
送信日: 2012/06/30 20:47:34 - (これは送信される値です)
変換された日付: (null) - (ここで壊れます!)
変換された日付文字列は次のとおりです: (null)
日付形式を次のように変更すると
[dateFormat setDateFormat:@"MM/dd/yyyy HH:mm:ss"];
すべてがスムーズに進みますが、ミリタリータイムが表示されてしまいます。それを12時間に変換してラベルに表示したいだけです