日付が「2013-10-29」および「11:30」(または「23:30」)のように見えるWebサービスから文字列として日付と時刻を取得していますが、「29 OCT.2013」のような日付を表示したい時刻は「午前 11 時 30 分」(または「午後 11 時 30 分」)です。このタイプの質問に関して非常に多くの回答を経験しましたが、エラーや警告なしで「null」を返そうとしたときに、助けてください...
質問する
14820 次
3 に答える
11
プロパティで手動でコード化された時刻と日付を変更するこのコードを適用すると、機能するはずです。
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate * dateNotFormatted = [dateFormatter dateFromString:@"2013-10-29"];
[dateFormatter setDateFormat:@"d MMM.YYYY"];
NSString * dateFormatted = [dateFormatter stringFromDate:dateNotFormatter];
[dateFormatter setDateFormat:@"HH:mm"];
NSDate * timeNotFormatted = [dateFormatter dateFromString:@"11:30"];
[dateFormatter setDateFormat:@"hh:mm a"];
NSString * timeFormatted = [dateFormatter stringFromDate:timeNotFormatter];
もう 1 つのオプションは、より厳密な時刻と日付を 1 つの文字列に入れ、次の形式を使用することです。
[dateFormatter setDateFormat:@"d MMM.YYYY at hh:mm a"];
于 2013-10-28T11:01:55.850 に答える
0
「2013-10-29 11:30」のように日付と時刻を組み合わせた最初の
[self dateFormat:@"yyyy-NN-dd HH:ss" newFormat:@"dd MMM.yyyy hh:mm a"] のような以下の関数を使用するよりも
- (NSString*) dateFormat : (NSString*)date currentFormat:(NSString*) currentFormat newFormat : (NSString*) newFormat
{
NSString *dateStr = date;
NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
[dtF setDateFormat:currentFormat];
NSDate *d = [dtF dateFromString:dateStr];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:newFormat];
NSString * strFinalDate = [dateFormat stringFromDate:d];
NSLog(@"%@",strFinalDate);
[dtF release];
[dateFormat release];
return strFinalDate;
}
日付と時刻が異なる場合は、NSArray を使用して分離します。
于 2013-10-28T10:57:56.813 に答える