私は次の文字列を持っています:
"2012-12-06 21:55:00"
そして私がこれの中に入れるとき:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
それは私にnullを与えます。私が間違っていることについて何か考えはありますか?
私は次の文字列を持っています:
"2012-12-06 21:55:00"
そして私がこれの中に入れるとき:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
それは私にnullを与えます。私が間違っていることについて何か考えはありますか?
必要なもの:
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
日付形式は、文字列内の日付の形式と一致する必要があります。
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"];
このメソッドを使用して、必要な形式の日付から取得NSDate
しNSString
ます..
-(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
次のコードを使用しました。私はそれを試してみましたが、うまくいきました。このコードを試して、現在の時刻と別の時刻の違いを見つけることができます。
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];
}