9

これらのコード行には奇妙な問題があります:

NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMyyyy"];
NSDate * date = [df dateFromString:@"062008"];
NSLog(@"Date %@", date);

結果は次のとおりです。

 Date (null)

しかし、次のように月を変更すると:

NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMyyyy"];
NSDate * date = [df dateFromString:@"072008"];
NSLog(@"Date %@", date);

結果は次のとおりです。

Date 2008-06-30 23:00:00 +0000

6 月 (06) の場合のみ、文字列からの日付変換は失敗します。

タイムゾーンやアイデアに関連するものだと思います。

ありがとう

解決済み:

[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

やはりタイムゾーンの関係ですね。

4

3 に答える 3

1

はい!あなたは絶対に正しいです。私も同じ問題に直面しています。私の考えと同様に、タイムゾーンに関連しています。これがあなたの質問に対する理想的な解決策であるかどうかはわかりません

NSString *strDate=@"06-2008";
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM-yyyy"];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSDate * date = [df dateFromString:strDate];
NSLog(@"Date %@", date);
于 2013-09-07T05:17:50.693 に答える
1

解決済み:やはりタイムゾーンの関係です。

[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
于 2013-12-04T16:09:29.087 に答える