0

重複の可能性:
文字列をnsdateに変換します

私はこの文字列を持っていますFri, 07 Dec 2012 08:40:33 +0100

どうすればNSDateに変換できますか

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM YYYY hh:mm:ss +HHmm"];
NSDate *myDate=[dateFormatter dateFromString:@"Fri, 07 Dec 2012 08:40:33 +0100"];
NSLog(@"-->%@",myDate);

nslogは

-->2012-12-06 19:30:33 +0000

このコードは適切に機能していません。ありがとう!!!

4

3 に答える 3

2

あなたのコードはほぼ正しいですが、いくつかの間違いがあります。

まず、年は24時間制であるため、24時間制は正しくありません。したがって、使用する必要がありYYYYます。次はタイムゾーンオフセットです。これは単なるではありません。そして今、最も重要な部分です。日付には書記言語としての日と月がありますが、アプリは英語以外の言語で実行される可能性があります。解析が機能しない場合は、ロケールを追加する必要があります。yyyyhhHH+HHmmZ

完全なコード:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"EN"]];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDate *myDate=[dateFormatter dateFromString:@"Fri, 07 Dec 2012 08:40:33 +0100"];
NSLog(@"-->%@",myDate);
于 2012-12-10T08:02:32.353 に答える
1

私はすべての答えについてあなたのコメントをチェックしました、そして私は言いたいです、あなたはタイムゾーンと混同されています。

07:40はGMTの時刻であり、08:40 +1000(1時間00分)である間、これらは同じです。同様に、再生成および印刷中はGMTで印刷されます。

NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"EN"]];
NSDate *myDate=[dateFormatter dateFromString:@"Fri, 07 Dec 2012 08:40:33 +0100"];
NSLog(@"--> %@",myDate);


NSString *rechange=[dateFormatter stringFromDate:myDate];

NSLog(@"==> %@",rechange);
于 2012-12-10T09:41:50.203 に答える
0

+HHmmファイナルを に変更する必要があると思いますZZZZ

時間ではなくタイムゾーンです。

于 2012-12-10T07:37:54.577 に答える