-1

日付の変換に問題があり、解決策を見つけることができませんでした。これは私を夢中にさせます。そのため、文字列型で REST Web サービスから日付を取得し、日付を NSDate に変換しようとすると、1 年が失われます。

コードは次のとおりです。

- (NSDate *)convertISOToDate:(NSString *) dateString {
    NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
    [formatter setCalendar:[NSCalendar currentCalendar]];
    [formatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ssZZZ"];
    [formatter setLocale:[NSLocale currentLocale]];
    NSDate  *date = [formatter dateFromString:dateString];
    return date;
}

デバッグすると、入力に次のようになります: dateString __NSCFString * @" 2017 -12-30T11:51:46+0100"

日付オブジェクト: date __NSDate * 2016 -12-30 11:51:46 CET 0x1dd3e950

誰でも質問についてアイデアを得ることができますか?

4

2 に答える 2

4

"yyyy"の代わりに使用し"YYYY"ます。"YYYY"週ベースの年です。

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
于 2013-10-28T11:16:53.537 に答える
2

これを試して:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ];
于 2013-10-28T11:19:41.270 に答える