0

こんにちは、フォーマットしようとしていますNSString。しかし、うまくいきません。stackoverflowで得たすべての回答を試しましたが、何もうまくいきません。

NSLog(@"log 1: %@ %@", [dealDetailsDict objectForKey:@"DealDateViewed"], [[dealDetailsDict objectForKey:@"DealDateViewed"] class]);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"log 2: %@ %@", [df stringFromDate:[dealDetailsDict objectForKey:@"DealDateViewed"]], [df dateFromString:[dealDetailsDict objectForKey:@"DealDateViewed"]]);

ここで何が問題なのかわかりません。両方ともstringFromDate戻ってdateFromStringnilます。これは私のNSLogです。

log 1: 2013-01-09 10:02:45 +0000 __NSCFString
log 2: (null) (null)

のように日付を表​​示したい31-12-2010。だから私は設定しました、

[df setDateFormat:@"dd-MM-yyyy"];

ここで私の問題が始まりました。

4

3 に答える 3

2

日付形式を設定yyyy-MM-dd HH:mm:ssしまし2013-01-09 10:02:45たが、日付文字列は2013-01-09 10:02:45 +0000

日付文字列からゾーンを削除するか+0000、日付形式文字列にゾーンを含めます。

于 2013-01-09T10:33:14.120 に答える
2

これを使用してください:

[df setDateFormat:@"yyyy-MM-dd HH:mm:ss z"]; 

次に、必要なフォーマットを次のように再度行います。

[df setDateFormat:@"yyyy-MM-dd"];
于 2013-01-09T10:41:52.173 に答える
2

日付形式には以下の機能を使用してください...

-(NSString*) Dateformate:(NSString*)str
{    
    NSDateFormatter *dfrt =[[NSDateFormatter alloc] init];
    [dfrt setDateFormat:@"yyyy-MM-dd h:mm:ss"];
    NSDate *presentdate = [dfrt dateFromString:str];
    [dfrt setDateFormat:@"MMMM"];
    NSString *fullMonth = [dfrt stringFromDate:presentdate];

    [dfrt setDateFormat:@"yyyy"];
    NSString *yearStr = [dfrt stringFromDate:presentdate];
   // NSLog(@"month %@",presentdate);

    [dfrt setFormatterBehavior:NSDateFormatterBehavior10_4];
    [dfrt setDateFormat:@"d"];
    int date_day = [[dfrt stringFromDate:presentdate] intValue];
    NSString *suffix_string = @"|st|nd|rd|th|th|th|th|th|th|th|th|th|th|th|th|th|th|th|th|th|st|nd|rd|th|th|th|th|th|th|th|st";
    NSArray *suffixes = [suffix_string componentsSeparatedByString: @"|"];
    NSString *suffix = [suffixes objectAtIndex:date_day];

    NSString *fullDateFormat = [NSString stringWithFormat:@"%@ %d%@ %@",fullMonth,date_day,suffix,yearStr];

   // NSLog(@"fullDateFormat %@",fullDateFormat);

    return fullDateFormat;

}
于 2013-01-09T10:42:08.700 に答える