从NSString问题转换NSDate

时间:2013-10-28 11:14:34

标签: ios objective-c nsstring nsdate

我的日期转换存在问题,我没有成功找到解决方案。这会让我发疯。 所以我在一个字符串类型下从REST Web服务中检索了一个日期,当我尝试将日期转换为NSDate时,我失去了一年。

以下是代码:

- (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

有人对这个问题有所了解吗?

2 个答案:

答案 0 :(得分:4)

使用"yyyy"代替"YYYY""YYYY"是基于每周的一年。

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];

答案 1 :(得分:2)

试试这个:

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ];