-1

日付が「2013-10-29」および「11:30」(または「23:30」)のように見えるWebサービスから文字列として日付と時刻を取得していますが、「29 OCT.2013」のような日付を表示したい時刻は「午前 11 時 30 分」(または「午後 11 時 30 分」)です。このタイプの質問に関して非常に多くの回答を経験しましたが、エラーや警告なしで「null」を返そうとしたときに、助けてください...

4

3 に答える 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 に答える