-4

私は次の文字列を持っています:

"2012-12-06 21:55:00"

そして私がこれの中に入れるとき:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];

それは私にnullを与えます。私が間違っていることについて何か考えはありますか?

4

4 に答える 4

5

必要なもの:

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

日付形式は、文字列内の日付の形式と一致する必要があります。

于 2012-12-06T23:39:34.740 に答える
2

stringFromDate:のメソッドへの呼び出しがありませんNSDateFormatter

また、カスタム形式は、提供しているサンプル文字列に準拠していません。yyyy-MM-dd HH:mm:ss

結果を達成するための適切な方法は、

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate * yourDate = [dateFormatter dateFromString:@"2012-12-06 21:55:00"];
于 2012-12-06T23:40:16.840 に答える
0

このメソッドを使用して、必要な形式の日付から取得NSDateNSStringます..

-(NSDate *)convertStringToDate:(NSString *) date {
        NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; 
        NSDate *nowDate = [[[NSDate alloc] init] autorelease];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];// set format here which format in string date
        date = [date stringByReplacingOccurrencesOfString:@"+0000" withString:@""];
        nowDate = [formatter dateFromString:date];
        return nowDate;
}

詳細については、私のブログをご覧くださいParas Joshi's Blog

于 2012-12-07T05:16:32.200 に答える
0

次のコードを使用しました。私はそれを試してみましたが、うまくいきました。このコードを試して、現在の時刻と別の時刻の違いを見つけることができます。

NSTimer*  updateTimerValue=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(DisplayTimer) userInfo:nil repeats:YES]; 

-(void)DisplayTimer
{  
    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss "];
    NSDate *now = [[NSDate alloc] init];

    NSString *dt=[dateFormatter stringFromDate:now];


    NSDate* firstDate = [dateFormatter dateFromString:dt];
    NSDate* secondDate = [dateFormatter dateFromString:[_deale_detail_deal_endate_ary objectAtIndex:0]];

    NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate];

    int a=timeDifference;

    int m,s,h,d;
    m=a/60;
    s=a%60;
    h=m/60;
    m=m%60;
    d=h/24;
    h=h%24;
    s--;
    if (s<0) {
        m--;
        s=59;
    }
    if (m<0) {
        h--;
        m=59;
    }
    if (h<0) {
        d--;
        h=24;
    }

    //NSLog(@"%dd %dh %dm %ds",d,h,m,s);
    _deal_time_display_lbl.text = [NSString stringWithFormat:@"%dd %dh %dm %ds",d,h,m,s];
}
于 2013-01-24T14:05:23.800 に答える