0

次のコードがあります。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY HH:mm"];
NSString *dateString = @"10/27/2012 18:00";
NSDate *parsedDate = [dateFormatter dateFromString:dateString] ;
NSLog(@"Parsed Date.. %@",[parsedDate description]);

NSLogステートメントをとして取得していParsed Date.. 2011-12-25 00:00:00 +0000ます。これを解決するために助けていただければ幸いです。そのNSStringを同等のNSDateに変換したいだけです。NSTimeZoneも使用してみましたが、効果はありませんでした。ここで何が欠けていますか?

4

2 に答える 2

3

代わりに小文字の年表示を使用する必要があります:yyyyYYYY

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];

タイムゾーンを正しく取得したい場合は、のタイムゾーンを設定する必要がありますNSDateFormatter。デフォルトでは、デバイスのタイムゾーンを使用します。GMTの時間については、以下を使用してください。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
NSString *dateString = @"10/27/2012 18:00";
NSDate *parsedDate = [dateFormatter dateFromString:dateString] ;
NSLog(@"Parsed Date.. %@",[parsedDate description]);
于 2012-10-20T14:45:48.760 に答える
0

間違ったフォーマット文字列を使用しています。ドキュメントを参照してください。基本的に、資本YYYYは「年の週」です。yyyy代わりに小文字を使用してみてください。

[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
于 2012-10-20T14:52:45.023 に答える